Qt 5.12.2(MSVC2017)程序在Win7因CRT DLL缺失无法启动的配置咨询
问题解决指南
一、解决Windows 7下api-ms-win-crt-runtime-l1-1-0.dll缺失问题
出现该错误的核心原因是Windows 7系统缺少Visual Studio 2015-2019通用CRT运行库,或是编译时未正确配置目标平台兼容性,具体解决步骤如下:
- 安装对应VC++运行库:下载并安装32位的Microsoft Visual C++ Redistributable for Visual Studio 2015-2019(务必选择x86版本),该运行库包含缺失的CRT组件。
- 调整编译目标平台设置:
- 在Qt Creator中打开项目,进入项目构建设置页面;
- 在MSVC编译器的编译选项中添加
/Zc:threadSafeInit-参数,关闭Win7不支持的线程安全初始化特性; - 指定目标平台宏定义
_WIN32_WINNT=0x0601(对应Windows 7),可在Qt Creator的编译器配置或VS项目属性中设置。
- 打包依赖DLL:若不想让用户手动安装运行库,可使用
windeployqt工具收集程序依赖的所有DLL,将CRT相关组件与Qt组件DLL一同放入程序目录。
二、Qt 5.12.2 + MSVC 2017环境下的静态编译配置
不更换Qt版本的情况下,可将qmake设置为静态模式,但需自行编译静态版本的Qt库,步骤如下:
- 准备编译环境:安装Visual Studio 2017(或对应Build Tools)、Perl、Python 2.7(Qt 5.12.x编译依赖该版本Python),并配置好系统环境变量。
- 下载Qt 5.12.2源码:获取对应版本的Qt源码包。
- 配置静态编译参数:
打开VS的x86命令提示符,进入Qt源码目录,执行以下配置命令:
参数说明:configure.bat -static -release -platform win32-msvc2017 -prefix "D:\Qt\5.12.2\msvc2017_static" -nomake examples -nomake tests -skip qtwebengine-static:指定静态编译模式;-release:编译Release版本库;-platform:指定编译平台为MSVC2017;-prefix:设置静态库的安装路径;-nomake examples/tests:跳过示例与测试编译,缩短耗时;-skip qtwebengine:Qt WebEngine静态编译复杂度高,建议跳过。
- 编译并安装静态库:依次执行
nmake和nmake install命令,等待编译完成(耗时较长)。 - 配置Qt Creator静态套件:添加新的Qt版本,指向编译好的静态库路径,匹配对应MSVC编译器,之后即可用该套件编译生成无需携带Qt依赖DLL的独立exe程序。
注意:使用开源版Qt静态编译时,需遵守Qt开源协议;商用场景需确认授权合规性。
内容的提问来源于stack exchange,提问作者elif
相关产品推荐
相关产品推荐

