回复: LLVM完整版(编译QDoc需要)
#6 回 fsu0413 的帖子 [lixinwei 10-20 23:40]
fsu0413:我就是想知道这个特殊的方法是啥。。。。
既然没有说明,我如果想编译出和这个一摸一样的就得自己调查。。。。。。。。。 (2020-10-20 20:38)
2楼提到的静态编译的llvm6.0应该是用脚本https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/build_clang_qdoc.py的某个历史版本编译的(比如https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/build_clang_qdoc.py?id=e71c621f5a06166bec5eafde3efb89c3ac949ae2)
关键是这几行:
pack_command = ['lib.exe', '/OUT:' + os.path.join(install_path, 'lib', 'libclang_static.lib')]
for file in os.listdir(os.path.join(build_path_static, 'lib')):
if file.endswith('.lib') and file != 'libclang.lib':
pack_command.append(file)
bld_utils.runCommand(pack_command, os.path.join(build_path_static, 'lib'), None, environment)
而build_clang_qdoc.py目前的版本没有了相关操作,静态编译出来的clang 10.0和11.0(应该就是https://download.qt.io/development_releases/prebuilt/libclang/qt/目录下的)也没有libclang_static.lib,但是也可以用于qdoc.exe的编译,只需要参照https://codereview.qt-project.org/c/qt/qttools/+/313377来修改Qt源码下的qttools\src\qdoc\configure.pri,或者等Qt 5.15.2发布
https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools目录下还有很多用于编译、打包的脚本
#7 回 lixinwei 的帖子 [fsu0413 10-21 12:26]
lixinwei:2楼提到的静态编译的llvm6.0应该是用脚本https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/build_clang_qdoc.py的某个历史版本编译的(比如https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/build_clang_qdoc.py?id=e71c621f5a06166bec5eafde3efb89c .. (2020-10-20 23:40)
好 我看看,非常感谢
#8 [hcaihao 12-26 11:21]
还要请教大佬们一个问题,我想静态连接openssl,使用参数:configure.bat -debug-and-release -static -opensource -confirm-license -platform win32-msvc -prefix "C:\Qt\6.2.2\msvc2019_x64" -I "E:\Develop\2019\x64\OpenSSL\include" -L "E:\Develop\2019\x64\OpenSSL\lib" -- -D OPENSSL_USE_STATIC_LIBS=ON
一直报:Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY) (found version "1.1.1i")
就算找到了,也是libcrypto64MDd.lib连接的动态lib,我想连接MT的lib,何解?
#9 回 hcaihao 的帖子 [lixinwei 12-26 17:29]
hcaihao:
还要请教大佬们一个问题,我想静态连接openssl,使用参数:configure.bat -debug-and-release -static -opensource -confirm-license -platform win32-msvc -prefix "C:\Qt\6.2.2\msvc2019_x64" -I "E:\Develop\2019\x64\OpenSSL\include" -L "E:\Develop\2019\x64\OpenSSL\lib" -- -D OPENSSL_USE_STATIC_LIBS=ON
一直报:Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY) (found version "1.1.1i")
就算找到了,也是libcrypto64MDd.lib连接的动态lib,我想连接MT的lib,何解?
.......
configure.bat -debug-and-release -static -static-runtime -prefix "C:\Qt\6.2.2\msvc2019_x64" -- -DOPENSSL_ROOT_DIR="E:\Develop\2019\x64\OpenSSL" -DOPENSSL_USE_STATIC_LIBS=ON -DOPENSSL_MSVC_STATIC_RT=ON
Qt 6 不再需要 -opensource -confirm-license
如果要链接MT的lib,Qt 也应该要编译为MT,不要混用MD(d)和MT(d),所以必须加上 -static-runtime
把CMake变量OPENSSL_ROOT_DIR设置为"E:\Develop\2019\x64\OpenSSL",应该就能找到openssl,不建议使用 -I 和 -L
把CMake变量OPENSSL_MSVC_STATIC_RT设置为ON或TRUE,就会优先找到MT的lib
#10 回 lixinwei 的帖子 [hcaihao 12-27 12:43]
lixinwei:configure.bat -debug-and-release -static -static-runtime -prefix "C:\Qt\6.2.2\msvc2019_x64" -- -DOPENSSL_ROOT_DIR="E:\Develop\2019\x64\OpenSSL" -DOPENSSL_USE_STATIC_LIBS=ON -DOPENSSL_MSVC_STATIC_RT=ON
Qt 6 不再需要 -opensource -confirm-li .. (2021-12-26 17:29)
感谢大佬指点,我用你发的这个选项找到mt了,但是到这里就挂了
E:\Qt\qt-everywhere-src-6.2.2\qt3d\src\3rdparty\assimp\src\contrib\pugixml\src\pugixml.hpp(1442): fatal error C1001: Internal compiler error.
(compiler file 'msc1.cpp', line 1687)
To work around this problem, try simplifying or changing the program near the locations listed above.
If possible please provide a repro here: https://developercommunity.visualstudio.com
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
INTERNAL COMPILER ERROR in 'C:\PROGRA~1\MICROS~3\2022\ENTERP~1\VC\Tools\MSVC\1430~1.307\bin\Hostx64\x64\cl.exe'
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
[9696/14887] Building CXX object qt3d\src\quick3d\imports\...keFiles\quick3danimationplugin.dir\Debug\cmake_pch.cxx.obj
ninja: build stopped: subcommand failed.