如何在不安装vc_redist.x64.exe

时间:2018-07-11 06:28:30

标签: qt visual-c++ compilation

我想使用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/

  1. 配置:
  

配置-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>

  1. 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步)不起作用?

如果您有任何想法或猜测,请发表评论。

更新

  1. Win10 64

无论我是否添加-static-runtime,两者都可以在没有vc_redist的情况下运行

  1. 赢7 32

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

1 个答案:

答案 0 :(得分:2)

从Qt 5.5.0编译Qt源,您可以传递-static-runtime参数来配置静态运行时。

Changes 5.5.0:

  

[Windows]添加了-static-runtime选项。

Config Options:

  

-static-runtime ......通过-static,使用静态运行时[no](仅Windows)