使用MinGW的g ++在Windows XP中编译Qt程序

时间:2008-10-13 21:25:05

标签: c++ qt mingw

我有一个存根Qt应用程序而且我一直收到编译器错误

#include <QApplication>

int main(int argc, char *argv[])
 {
     return 0;
 }

我使用了qmake -projectqmake命令,据我所知 他们正确地完成了工作。当我随后在命令中调用make时 我遇到以下错误:

g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT
-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I
'../../../../qt/include/QtCore' -I'../../../../qt/include/QtCore' -I'../../../..
/qt/include/QtGui' -I'../../../../qt/include/QtGui' -I'../../../../qt/include' -
I'.' -I'c:/qt/include/ActiveQt' -I'release' -I'.' -I'../../../../qt/mkspecs/defa
ult' -o release/Main.o Main.cpp
cc1plus.exe: Invalid option 'threads'
make[1]: *** [release/Main.o] Error 1
make: *** [release] Error 2

我在Google上的搜索告诉我,线程很重要,但不是如何 修复此错误。任何帮助将不胜感激。

编辑(从OP留下的答案中复制):

我现在得到:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc 
-Wl,-s -pthread -Wl -Wl,-subsystem,windows -o release/raytrace.exe 
object_scr ipt.raytrace.Release  -L'c:/qt/lib' -lmingw32 -lqtmain -lQtGui -lgdi32 
-lcomdlg3 2 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 
-luser32 - lshell32 -luuid -lole32 -ladvapi32 -lws2_32 
g++: unrecognized option `-pthread' 
/cygnus/cygwin-b20/H-i586-cygwin32/i586-cygwin32/bin/ld: cannot open -lmsimg32: 
No such file or directory collect2: 
ld returned 1 exit status make[1]: *** 
[release/raytrace.exe] Error 1 make: *** [release] Error 2

4 个答案:

答案 0 :(得分:3)

++ milot

我只使用MinGW在Windows上编译Qt,这是确保您拥有所需内容的最简单方法。

以下是开源Qt版本的链接: http://trolltech.com/downloads/opensource/appdev/windows-cpp

使用“或下载包含MinGW编译器的Qt:大小:149,3 Mb”链接。

使用MinGW的另一种方法是使用MinGW编译Qt然后编译你的应用程序,但这取决于你是在MSYS中编译还是只使用MinGW。

答案 1 :(得分:2)

我在安装从网上下载的MingW之前遇到过类似的问题,但另一方面在安装Qt时它会要求你下载与Qt兼容的MingW版本。所以你在Qt安装程序问你时尝试安装它吗?

答案 2 :(得分:1)

Qt 4.5拥有Qt Creator 1.1,易于开发应用程序。

设计和编码结合在Qt Creator和mucy中更易于使用。

你可以像使用VB IDE(或者更像是eclipse,netbeans等)来体验它。

运行应用时。项目以调试或发布模式编译。

答案 3 :(得分:0)

根据提问者后来的回答,而不是原来的问题。

在MSYS提示符下运行“ls /mingw/lib/libmsimg32.a”并查看是否有该文件。我的安装确实如此(MinGW GCC 3.4.5)。如果您有该文件,则可能需要添加-L / mingw / lib。如果您没有该文件,则可能错过了安装MinGW的Windows api部分。

无论哪种方式删除-pthread。你正在使用Win32 api。

如果这不起作用,您需要指定您正在使用的MinGW版本,如果您使用的是MSYS,则需要指定哪个版本的MSYS。

相关问题