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

Ubuntu虚拟机中编译QT5程序生成Windows平台.exe方法咨询

在Ubuntu虚拟机中交叉编译QT5程序生成Windows 64位.exe文件

1. 安装MinGW交叉编译工具链

在Ubuntu终端执行以下命令,安装针对64位Windows的交叉编译工具:

sudo apt update
sudo apt install mingw-w64

验证安装结果:

x86_64-w64-mingw32-g++ --version

能正常输出版本信息即为安装成功。

2. 配置QT交叉编译环境

QT需要明确交叉编译工具链的路径,我们通过自定义编译配置文件实现:

  • 复制QT默认的Windows编译模板:
cp -r /usr/lib/x86_64-linux-gnu/qt5/mkspecs/win32-g++ ~/qt-win-cross
  • 编辑复制后的配置文件~/qt-win-cross/qmake.conf,将所有编译器命令前缀替换为x86_64-w64-mingw32-,修改后关键内容如下:
QMAKE_CC                = x86_64-w64-mingw32-gcc
QMAKE_CXX               = x86_64-w64-mingw32-g++
QMAKE_LINK              = x86_64-w64-mingw32-g++
QMAKE_LINK_SHLIB        = x86_64-w64-mingw32-g++
QMAKE_AR                = x86_64-w64-mingw32-ar cqs
QMAKE_OBJCOPY           = x86_64-w64-mingw32-objcopy
QMAKE_STRIP             = x86_64-w64-mingw32-strip

3. 生成Makefile并编译项目

进入你的QT项目根目录,执行以下命令生成Windows目标的Makefile:

qmake -spec ~/qt-win-cross

启动编译:

make

编译完成后,项目目录下会生成后缀为.exe的可执行文件。

4. 打包依赖文件(关键步骤)

生成的.exe无法直接在Windows运行,需配套依赖库:

  • 查看程序依赖的DLL:
x86_64-w64-mingw32-objdump -x your_app.exe | grep DLL
  • 从系统路径中找到这些DLL并复制到.exe同目录:
    • QT核心库:比如Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll(根据项目用到的模块而定),一般位于/usr/lib/x86_64-linux-gnu/qt5/plugins/
    • MinGW运行库:libgcc_s_seh-1.dll、libstdc++-6.dll、libwinpthread-1.dll,位于/usr/x86_64-w64-mingw32/lib/
  • 额外需要QT的平台插件:复制/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/qwindows.dll到.exe同目录的platforms文件夹(需手动创建该文件夹)

将.exe和所有依赖文件打包后,即可在Windows系统上运行。

内容的提问来源于stack exchange,提问作者DamienDne

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:55:18