Linux下使用Qt Creator向Windows交叉编译报错求助
问题分析与解决方案
核心问题
报错的本质不是MinGW版本不对,而是你当前使用的Qt 6.4.1是Linux平台的预编译版本(标识为x86-linux-generic-elf-64bit),它只能配合Linux本地编译器生成Linux程序,和你用来交叉编译Windows的MinGW工具链(标识为x86-windows-msys-pe-64bit)完全不匹配。
不需要更换MinGW版本
你当前安装的x86_64-w64-mingw32-g++是Linux下交叉编译Windows 64位程序的标准工具链,只要能正常编译普通C++程序(比如用x86_64-w64-mingw32-g++ test.cpp -o test.exe测试,输出的test.exe应为Windows PE格式),就不需要更换版本。
正确解决步骤
安装/编译Windows目标的Qt版本
- 若使用Qt Maintenance Tool:在安装组件时,不要选Linux平台的Qt 6.4.1,要选择对应
x86_64-w64-mingw32架构的Qt 6.4.1交叉编译版本(部分发行版的Qt官方源可能提供预编译包)。 - 若没有预编译包,手动从源码编译Qt:
- 确保MinGW工具链完整,比如Ubuntu下安装
gcc-mingw-w64-x86-64、g++-mingw-w64-x86-64包。 - 下载Qt 6.4.1源码,创建编译目录并配置:
mkdir build-qt-mingw && cd build-qt-mingw ../configure -prefix /opt/qt6-mingw -xplatform win32-g++ -device-option CROSS_COMPILE=x86_64-w64-mingw32- -opensource -confirm-license - 编译并安装:
make -j$(nproc) make install
- 确保MinGW工具链完整,比如Ubuntu下安装
- 若使用Qt Maintenance Tool:在安装组件时,不要选Linux平台的Qt 6.4.1,要选择对应
配置Qt Creator
- 在Qt Creator的工具链设置中,确认已添加你的MinGW交叉编译器(
x86_64-w64-mingw32-g++)。 - 添加刚安装/编译完成的Windows目标Qt版本,将其与MinGW交叉工具链绑定,确保项目构建时使用的是这个配对组合,而非原来的Linux本地Qt版本。
- 在Qt Creator的工具链设置中,确认已添加你的MinGW交叉编译器(
内容的提问来源于stack exchange,提问作者DamienDne
相关产品推荐
相关产品推荐

