我想使用MSVC2015构建Qt 5.10.1,并且没有MSVC运行时。 关注了http://amin-ahmadi.com/2016/09/22/how-to-build-qt-5-7-statically-using-msvc14-microsoft-visual-studio-2015/
配置-static-调试和释放-前缀 “ C:\ Qt \ 5.10.1-static-msvc2015”-平台win32-msvc2015 -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl桌面-sql-sqlite -sql-odbc -no-openssl-开源-confirm-license -make libs -nomake工具-nomake示例-nomake测试< / p>
src\qtbase\mkspecs\common\msvc-desktop.conf
修改为-MD
到-MT
。在构建过程中没有错误,但是如果我在运行程序时未安装MSVC运行时,则会得到:
api-ms-win-crt-runtime-l1-1-0.dll
丢失。
如何使MSVC静态独立于Mingw静态版本?
编译测试程序的输出:
cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -O2 -MT -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc -DUNICODE -D_UNICODE -DWIN32 -DQT_DEPRECATED_WARNINGS -DQQ_LI_B_DQT_LI_B_DQT_LI_B -DQT_NETWORK_LIB -DQT_CORE_LIB -DNDEBUG
如果我不执行步骤2,则输出将为-MD
。
那为什么-MT
(第2步)不起作用?
如果您有任何想法或猜测,请发表评论。
更新:
无论我是否添加-static-runtime
,两者都可以在没有vc_redist
的情况下运行
Qt 5.10.1编译通过,但是在执行程序时得到api-ms-win-core-winrt-l1-1-0.dll is missing
。
即使我重新安装vc_redist
仍然出现错误...
相关:Why installed vc_redist still gives api-ms-win-core-winrt-l1-1-0.dll is missing
Qt 5.11.1编译也通过了,但是在构建程序时得到了C1083: 'QtCore/qglobal.h':No such file or directory
。
答案 0 :(得分:2)
从Qt 5.5.0编译Qt源,您可以传递-static-runtime
参数来配置静态运行时。
[Windows]添加了-static-runtime选项。
-static-runtime ......通过-static,使用静态运行时[no](仅Windows)