如何在Linux上为mingw和QT设置构建环境?

时间:2017-09-08 14:41:47

标签: linux qt cmake mingw

我有一台Ubuntu构建机器。

我希望使用已安装的MinGW进行Windows的交叉编译。

我正在编译QT应用程序(QT5正在发生)。

我正在使用CMake。

本机构建工作正常,但交叉编译失败可怕,因为CMake无法找到FindPackage使用的文件。为了解决这个问题,我将所有QT库文件,头文件,cmake文件和shared / qt5下的文件从MSYS2 MinGW / QT5安装(工作得很好)复制到我的Ubuntu构建机器上的相关MinGW文件夹中。我还象征性地将“qmake”,“rcc”,“moc”和“uic”的原生二进制文件链接到正确的位置,因为QT5 cmake文件似乎正在寻找它们。我想我应该编辑cmake文件以查找具有目标系统前缀的二进制文件,并重命名符号链接,但我很懒。

CMake现在成功,但当我尝试“制作”我的程序时,我从“moc”收到以下错误:

moc: could not find a Qt installation of ''

我想我错过了一两个环境变量。

理想情况下,我想要一个解决方案,指定一些预先构建的Ubuntu软件包,我可以使用MinGW在Linux上为Windows编译QT应用程序,但坦率地说,任何有用的东西都会很棒。

1 个答案:

答案 0 :(得分:0)

答案结果是我真的需要编译我自己的自定义版本的Qt。

我得到的错误是因为事实证明qmake二进制文件不是二进制文件,而是其他东西的符号链接。修复允许我成功编译,但所有依赖项都是错误的,并且生成的二进制文件不可运行。为了解决这个问题,我需要自己编译Qt及其所有依赖项:(因为这些包括Harfbuzz及其循环依赖项,这不太好。我最后一次编译和使用这些二进制文件的尝试导致了一个简单崩溃的可执行文件。

我真的希望为Ubuntu提供MinGW软件包的人能用MinGW编译流行的软件包,如libicu,Qt等,并将它们作为软件包提供。

有用的链接:

https://marc.wäckerlin.ch/computer/cross-compile-on-ubuntu-linux-for-windows-using-mingw

https://github.com/mwaeckerlin/mingw