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

在Ubuntu 14.04上交叉编译Qt5构建Windows版钱包遇错求助

解决Ubuntu 14.04下用MinGW32交叉编译钱包程序时Qt5Gui找不到的问题

我刚梳理完你的问题,核心原因其实很清晰:你安装的qt5-default是给Linux本地编译用的,而交叉编译Windows程序需要的是Windows平台的Qt5库(MinGW编译版),CMake找不到对应目标平台的配置文件才会抛出这个错误。下面给你一步步的解决办法:

1. 安装MinGW32的Qt5交叉编译依赖

首先确保你装了完整的MinGW工具链,再安装针对Windows平台的Qt5交叉编译包:

# 更新仓库并安装MinGW-w64工具链(Ubuntu14.04推荐用这个,比旧版mingw32更完善)
sudo apt-get update
sudo apt-get install mingw-w64
# 安装针对MinGW的Qt5基础开发包
sudo apt-get install qtbase5-mingw-w64 qt5-qmake qtbase5-dev-tools

2. 创建CMake交叉编译工具链文件

CMake需要明确知道你要交叉编译到Windows,所以得写一个工具链配置文件。在项目根目录新建toolchain-mingw32.cmake,内容如下:

# 指定目标系统为Windows
SET(CMAKE_SYSTEM_NAME Windows)
# 指定MinGW的编译工具
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
# 指定MinGW的根路径,CMake会在这里查找目标平台的库和头文件
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
# 配置CMake查找规则:不查找本地程序,只在目标路径找库和头文件
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# 手动指定Qt5Gui的配置文件路径(对应刚才安装的交叉编译版Qt5)
SET(Qt5Gui_DIR /usr/i686-w64-mingw32/lib/cmake/Qt5Gui)
SET(Qt5Core_DIR /usr/i686-w64-mingw32/lib/cmake/Qt5Core)

如果你的MinGW是手动编译安装的,记得修改上面的路径为实际安装位置。

3. 使用工具链文件重新编译

清空之前的build目录(或者新建一个专门的Windows编译目录),然后执行编译命令:

# 新建Windows编译目录,避免和Linux编译文件混淆
mkdir build-win && cd build-win
# 用工具链文件配置CMake
cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw32.cmake
# 开始编译
make

额外注意事项

  • 如果Ubuntu14.04仓库里没有qtbase5-mingw-w64包,你需要手动下载Qt官方的MinGW预编译包(对应项目要求的Qt5版本),解压后把Qt5Gui_DIR指向解压目录下的lib/cmake/Qt5Gui路径。
  • 检查项目的CMakeLists.txt,有没有硬编码Linux相关的路径或依赖,如果有需要调整为支持交叉编译的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:23:13