c++ - 如何构建用于交叉编译的 Qt 5.7.0?

标签 c++ linux qt5 cross-compiling

如何在 Ubuntu 上构建 Qt 5.7.0 以交叉编译到 Windows?

我有这个错误:

In file included from qt-everywhere-opensource-src-5.7.0/qtbase/include/QtCore/qt_windows.h:1:0,
             from main.cpp:33:
qt-everywhere-opensource-src-5.7.0/qtbase/include/QtCore/../../src/corelib/global/qt_windows.h:61:21: fatal error: windows.h: No such file or directory

我的配置选项:

./configure -opensource -c++std c++11 -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32- -device-option PKG_CONFIG=i686-w64-mingw32-pkg-config -force-pkg-config -prefix /opt/qt/qt-5.7.0-win32 -nomake examples

windows.h 有路径:/usr/i686-w64-mingw32/include/windows.h

注意:我不想使用 MXE。

最佳答案

不确定这是否是正确的修复,但 Qt 似乎试图将 ActiveQt(仅限 Windows)下的工具之一构建为 native 。

我在这里编辑了这个文件:

qtactiveqt/src/tools/idc/idc.pro

并注释掉前两行,这似乎解决了问题。

(我也确实将 binfmt 配置为通过 wine 运行 .exe 文件,这可能会影响它是否尝试将 idc 工具作为 native 工具运行)

关于c++ - 如何构建用于交叉编译的 Qt 5.7.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40571039/

相关文章:

c++ - 未定义的行为和顺序点

utf-8 - Qt utf-8编码问题

python - 相互调整小部件的大小

c++ - CUDA 归约和样本 : data racing?

c++ - 如果将对象转换为实际类型,使用虚函数是否有任何成本?

c++ - std::call_once 抛出 std::system_error(未知错误 -1)

linux - `on_rq` 中 `task_struct` 字段的用途是什么?

c - 如何使用c程序判断用户输入的命令是否存在于linux中

qt - 如何旋转位图图像

c++ - 在 C++ 中显示堆栈元素时无限循环