2011-07-06 31 views
1

我需要为Windows编译我的Qt应用程序,而我正在使用Fedora 14,它有Qt Creator MinGW的二进制包。我正确安装了所有必需的交叉编译软件包,并将qmake的路径添加为/usr/bin/mingw32-qmake-qt4。 Qt Creator无法获得足够的环境变量来设置所需的工具链。在Linux下使用Qt Creator构建Windows版本

经过小小的挖掘,我发现Qt Creator使用参数-query调用指定的qmake路径来获取这些变量。

我发现调用/usr/bin/mingw32-qmake-qt4 -query直接给出了错误***Unknown option -query。所以我猜Qt Creator是无辜的。

后来我发现,/usr/bin/mingw32-qmake-qt4不超过一个符号链接到通用脚本/usr/libexec/mingw32-scripts使用basename $0rpm --eval,唧唧歪歪。

现在我累了。任何身体都可以过来吗?

这些都是我安装的软件包的版本(它们是最新为2011/07/06的):

mingw32-binutils.i686    2.20.1-2.fc14    @updates  
mingw32-cpp.i686      4.5.0-1.fc14    @fedora   
mingw32-dbus.noarch     1.4.1-0.1.20101008git.fc14 @updates  
mingw32-expat.noarch     2.0.1-6.fc13    @fedora   
mingw32-filesystem.noarch   64-2.fc14     @updates  
mingw32-gcc.i686      4.5.0-1.fc14    @fedora   
mingw32-gcc-c++.i686     4.5.0-1.fc14    @fedora   
mingw32-libjpeg.noarch    7-2.fc12     @fedora   
mingw32-libpng.noarch    1.4.3-1.fc14    @fedora   
mingw32-libtiff.noarch    3.9.5-1.fc14    @updates  
mingw32-pthreads.noarch    2.8.0-10.fc13    @fedora   
mingw32-qt.noarch     4.7.1-3.fc14    @updates  
mingw32-qt-qmake.i686    4.7.1-2.fc14    @updates  
mingw32-runtime.noarch    3.15.2-5.fc13    @fedora   
mingw32-sqlite.noarch    3.6.22-1.fc13    @fedora   
mingw32-w32api.noarch    3.14-1.fc14     @fedora   
mingw32-zlib.noarch     1.2.5-1.fc14    @fedora   
qt.i686        1:4.7.2-8.fc14    @updates  
qt-assistant.i686     1:4.7.2-8.fc14    @updates  
qt-creator.i686      2.1.0-4.rc1.fc14   @updates  
qt-demos.i686      1:4.7.2-8.fc14    @updates  
qt-devel.i686      1:4.7.2-8.fc14    @updates  
qt-examples.i686      1:4.7.2-8.fc14    @updates  
qt-mysql.i686      1:4.7.2-8.fc14    @updates  
qt-webkit.i686      1:4.7.2-8.fc14    @updates  
qt-x11.i686       1:4.7.2-8.fc14    @updates 

我忘了说,我更喜欢使用的是Fedora回购在当地提供的二进制软件包构建库或工具

回答

1

我快速查看了Fedora 15安装过程中发生的情况。

mingw32-qmake-qt4是一个浅层包装,基本上只是调用qmake -spec win32-g++-cross $0。现在,如果您拨打mingw32-qmake-qt4 -query,则-spec-query选项都会传递给qmake。然而,Qmake足够愚蠢,不能一起接受这两个选项,并给你错误信息。

我想可能可以通过将mingw32-qmake包装脚本替换为具有硬编码-spec选项的适当可执行文件来修复它。这样,使用-spec选项就没有必要了,你会得到一个工作查询选项。

您可能想写入Fedora MinGW mailing list,也许有人在那里有一个更好的想法如何解决这个问题。

+0

感谢您的回答。其实我通过使用qmake-qt4 -spec fedora-win32-cross正常来做到了这一点,但是当时stackoverflow阻止我添加我的答案。 – mmonem