从Manjaro Linux用Qt Creator生成Windows .exe静态构建求助
解决Windows下Qt生成独立.exe及静态构建问题
一、找不到windeployqt工具的解决办法
- 首先确认Qt安装组件:windeployqt.exe是Qt工具链的一部分,默认在
Qt\X.X.X\mingwXX_64\bin(MinGW版本)或Qt\X.X.X\msvcXXXX_64\bin(MSVC版本)目录下。如果找不到,说明安装Qt时未勾选对应工具链的完整组件,需重新运行Qt Installer,添加对应版本的MinGW/MSVC工具链组件(包含Qt > Qt X.X.X > MinGW XX-bit或MSVC选项,以及Tools下的对应编译工具)。 - 无需关注
windeployqt.prf,这是qmake的配置文件,并非工具本身。
二、Qt静态构建分步教程(避免DLL依赖)
静态构建会把Qt库和程序打包成单一exe,以下分两种常用工具链说明:
1. MinGW版本静态构建
步骤1:准备环境
- 通过Qt Installer安装对应版本的MinGW工具链(如MinGW 11.2.0 64-bit),同时勾选
Qt > Qt X.X.X > Sources(Qt源码组件)。 - 确保CMake已添加到系统PATH(Qt 5.15+版本建议安装)。
步骤2:配置静态构建参数
打开CMD/PowerShell,进入Qt源码目录(如C:\Qt\X.X.X\Src),执行:
mkdir build-static && cd build-static ..\configure -static -release -prefix "C:\Qt\X.X.X\mingwXX_64_static" -nomake examples -nomake tests -skip qtwebengine -skip qtwebkit
参数说明:
-static:指定静态构建模式-release:仅构建发布版本,缩短编译时间-prefix:设置静态Qt的安装路径-nomake examples/tests:跳过示例和测试代码-skip qtwebengine/webkit:这两个模块静态构建复杂度高,先跳过(需用时再单独处理)
步骤3:编译并安装
# 多线程编译,-j后数字根据CPU核心数调整(如4核用-j4) mingw32-make -j8 # 安装静态Qt到指定路径 mingw32-make install
步骤4:配置Qt Creator静态Kit
- 打开Qt Creator,进入
工具 > 选项 > Kits - 点击
Add新建Kit:- 命名为
Qt X.X.X MinGW XX-bit Static Compiler选择对应版本的MinGW编译器Qt Version点击Add,选择刚才安装的静态Qt目录下的bin\qmake.exe(如C:\Qt\X.X.X\mingwXX_64_static\bin\qmake.exe)- 保存Kit
- 命名为
步骤5:构建独立exe
- 打开项目,左侧切换到
Projects选项卡,选择静态Kit - 切换到
Build Settings,设置构建模式为Release - 点击
Build,完成后在构建目录的release文件夹中即可得到无需DLL的独立exe
2. MSVC版本静态构建
步骤1:准备环境
- 安装Visual Studio(需包含C++开发组件),版本需与Qt支持的MSVC版本匹配(如Qt 6.5支持MSVC 2019/2022)
- 通过Qt Installer安装对应MSVC版本的Qt源码组件
步骤2:配置静态构建参数
打开Visual Studio对应的Developer Command Prompt(如x64 Native Tools Command Prompt for VS 2022),进入Qt源码目录,执行:
mkdir build-static && cd build-static ..\configure -static -release -prefix "C:\Qt\X.X.X\msvc2022_64_static" -nomake examples -nomake tests -skip qtwebengine -skip qtwebkit
步骤3:编译并安装
# 并行编译用jom更快(需提前安装jom),否则用nmake jom -j8 # 安装静态Qt nmake install
步骤4:配置Qt Creator静态Kit
- 进入
工具 > 选项 > Kits,新建Kit:- 命名为
Qt X.X.X MSVC 2022 64-bit Static Compiler选择对应MSVC编译器Qt Version添加静态Qt目录下的bin\qmake.exe- 保存Kit
- 命名为
步骤5:构建项目
选择静态Kit,切换到Release模式构建,最终得到独立exe。
三、非静态构建的DLL依赖解决
若暂时不想静态构建,找到windeployqt.exe后,在命令行运行:
windeployqt.exe --release 你的exe文件路径
工具会自动将依赖的DLL、资源文件复制到exe所在目录,使程序可在其他Windows电脑运行。
内容的提问来源于stack exchange,提问作者Shyne
相关产品推荐
相关产品推荐

