代码之家  ›  专栏  ›  技术社区  ›  JustWe

如何使qt静态生成在不安装vc redist.x64.exe的情况下运行

  •  1
  • JustWe  · 技术社区  · 7 年前

    我想使用MSVC2015构建Qt5.10.1,而不使用MSVC运行时。 跟着 http://amin-ahmadi.com/2016/09/22/how-to-build-qt-5-7-statically-using-msvc14-microsoft-visual-studio-2015/

    1. 配置:

    配置-静态-调试和释放-前缀 “C:\qt\5.10.1-static-msvc2015”-平台win32-msvc2015-qt zlib -qt pcre-qt libpng-qt libjpeg-qt freetype-opengl desktop-sql sqlite-sql odbc-no openssl-opensource-confirm license-make libs-nomake tools-nomake examples-nomake tests

    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:strictstrigs-zc:thrownew-o2-mt-w3-w3410-w34189-w44996-w44456-w44457-w44458-wd4577-wd4467-ehsc-d unicode-d_unicode-dwin32-dqt_不推荐使用的_警告-dqt_no_debug-dqt_quick_lib-dqt_multimedia_lib-dqt_gui_lib-dqt_qml_lib-dqt_network_lib-dqt_core_lib-dndebug

    如果不执行步骤2,输出将 -医学博士 .

    所以为什么 -手动变速器 (步骤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 执行程序时。

    即使我重新安装 风险投资 仍然有错误…

    关联: 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 回复  |  直到 7 年前
        1
  •  2
  •   Eligijus Pupeikis    7 年前

    从qt 5.5.0编译qt源,您可以通过 -static-runtime 为静态运行时配置的参数。

    Changes 5.5.0:

    [Windows]已添加-静态运行时选项。

    Config Options:

    -静态运行时……使用-static时,请使用静态运行时[no](仅限Windows)