因为我不是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中修改单个构建步骤:
-spec
参数值。该字段不可编辑。尽管我在互联网上找到了指南和解决方案,但到目前为止,我唯一的解决方案是将我的源代码发送到虚拟Windows机器,然后用它创建一个新项目。在这个虚拟机上,我可能会为Windows编译...但当然,这对我来说听起来并不是真正的“解决方案”......
Qt(Creator)现在有没有办法让交叉编译变得更容易了?我对“未找到符号”错误感到有些厌倦......
答案 0 :(得分:0)
首先,
sudo apt-get install mingw-w64
然后,检查Qt Creator是否找到工具链。
接下来,在Ubuntu开始提供mingw-w64-qt
包之前,下载Qt源并构建它。这肯定会变得混乱,甚至最简单的事情就是install WINE and use a Windows Qt version。