You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CMake和Qt Creator生成可独立运行的EXE可执行文件

Qt Windows程序依赖DLL收集方案

Qt Creator运行程序时会自动将对应Qt版本的bin目录临时加入系统PATH环境变量,因此可以正常加载依赖;直接运行exe时没有对应环境变量配置,就会提示缺失DLL。

核心操作步骤

  • 首先确认你编译项目使用的Qt套件版本(比如MinGW 64位、MSVC 2022 64位),必须使用对应版本的部署工具,否则会复制不兼容的依赖文件。
  • 打开对应Qt版本的专属命令行终端:从Windows开始菜单找到对应Qt版本的文件夹,选择和编译套件一致的终端入口,比如Qt 6.4.2 (MinGW 11.2.0 64-bit)。
  • 执行命令切换到exe所在的生成目录,示例:
    cd /d D:\build-myProject-Release\release
  • 执行官方部署工具命令自动收集所有依赖:
    windeployqt 你的程序名称.exe
    • 如果项目使用了QML相关模块,需要额外加参数指定项目QML源码根目录,避免漏复制QML依赖:
      windeployqt --qmldir D:\projects\myProject\qml 你的程序名称.exe
  • 等待命令执行完成后,所有Qt官方依赖、编译器运行时依赖都会自动复制到exe所在目录,此时直接双击exe即可正常运行。

特殊情况处理

如果执行完windeployqt后仍提示缺失非Qt类依赖,可按以下方式处理:

  • 使用Dependencies工具打开exe,查看所有缺失的依赖项,从对应SDK或编译器安装目录中找到对应DLL,复制到exe目录即可。
  • 如果是MSVC编译的程序,也可以直接安装对应版本的Microsoft Visual C++ Redistributable运行库,无需单独复制MSVC运行时DLL。

CMake自动集成部署(可选)

如果需要每次编译完成后自动执行部署操作,可在项目的CMakeLists.txt中添加以下自定义命令:

if(WIN32)
    # 替换成你的项目目标名
    set(TARGET_NAME myProject)
    add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
        COMMAND set PATH=%PATH%$<SEMICOLON>${QT_INSTALL_BINS}
        COMMAND windeployqt "$<TARGET_FILE:${TARGET_NAME}>"
    )
endif()

内容的提问来源于stack exchange,提问作者Jimmy R.T.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:24:03