使用Qt Creator在Linux下构建Windows

时间:2011-07-06 07:28:00

标签: qt qt4 mingw qt-creator qmake

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

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

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

然后我发现/usr/bin/mingw32-qmake-qt4只不过是使用/usr/libexec/mingw32-scriptsbasename $0,bla bla bla的通用脚本rpm --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 repos提供的二进制包而不是本地构建的库或工具

1 个答案:

答案 0 :(得分:1)

我快速浏览一下我的Fedora 15安装情况。

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

我认为可以通过将mingw32-qmake包装器脚本替换为具有硬编码的-spec选项的正确可执行文件来修复它。这样,就不必使用-spec选项了,你就可以得到一个有效的-query选项。

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