使用MinGW无法在Linux上构建Windows

时间:2014-01-18 17:25:12

标签: c++ qt mingw qt-creator

因为我不是Java爱好者,所以我决定在我的一个项目中使用C ++和Qt。但是,我遇到了大的交叉编译Qt 问题,我无法为Windows用户生成.exe文件。

我的设置

Linux Ubuntu 12.04,Wine和Qt。 qmake -v给出以下输出:

QMake version 2.01a
Using Qt version 4.8.1 in /usr/lib/x86_64-linux-gnu

我还有一个MinGW32编译器,可以在/usr/bin/i586-mingw32msvc-g++找到。 My Wine drive_c文件夹包含以下Qt目录:

$HOME/.wine/drive_c/Qt/Qt5.2.0/5.2.0/Src
$HOME/.wine/drive_c/Qt/Qt5.2.0/5.2.0/mingw48_32

mingw48_32目录包含必要的include/lib/目录,这些目录在我的mkspec文件/usr/share/qt4/mkspecs/win32-x-g++/qmake.conf中使用:

QMAKE_INCDIR_QT = /home/me/.wine/drive_c/Qt/Qt5.2.0/5.2.0/mingw48_32/include
QMAKE_LIBDIR_QT = /home/me/.wine/drive_c/Qt/Qt5.2.0/5.2.0/mingw48_32/lib

问题

根据大多数关于Qt交叉编译的指南,我的设置应该足以运行一个简单的:

qmake -spec win32-x-g++
make
wine /path/to/my/application.exe

但......没有任何联系。 QApplication以及我在程序中使用的所有其他符号都“未找到”。没有QApplication,没有QPushButton,没有connect(),没有SIGNAL(),没有SLOT() ......

我的目标是成功配置QtCreator以使用此设置(在独立的构建配置中),以便它可以构建Linux可执行文件(通过第一个和正在运行的配置)和Win32 .exe(通过MinGW设置)以上)。但是,我无法在QtCreator中修改单个构建步骤:

  • 无法添加“MinGW”工具链:它在“添加”下拉列表中不可用。
  • 无法更改项目构建配置面板中的-spec参数值。该字段不可编辑。

尽管我在互联网上找到了指南和解决方案,但到目前为止,我唯一的解决方案是将我的源代码发送到虚拟Windows机器,然后用它创建一个新项目。在这个虚拟机上,我可能会为Windows编译...但当然,这对我来说听起来并不是真正的“解决方案”......

Qt(Creator)现在有没有办法让交叉编译变得更容易了?我对“未找到符号”错误感到有些厌倦......

1 个答案:

答案 0 :(得分:0)

首先,

sudo apt-get install mingw-w64

然后,检查Qt Creator是否找到工具链。

接下来,在Ubuntu开始提供mingw-w64-qt包之前,下载Qt源并构建它。这肯定会变得混乱,甚至最简单的事情就是install WINE and use a Windows Qt version