【问题标题】:Compiling a Qt program in Windows XP with MinGW's g++在 Windows XP 中使用 MinGW 的 g++ 编译 Qt 程序
【发布时间】:2010-09-16 23:29:37
【问题描述】:

我有一个存根 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 上的搜索告诉我,线程很重要,但不知道如何保存 修复此错误。任何帮助将不胜感激。

EDIT(复制自 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

【问题讨论】:

    标签: c++ qt mingw


    【解决方案1】:

    ++米洛特

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

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

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

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

    【讨论】:

      【解决方案2】:

      我之前在安装从网上下载的 MingW 时也遇到过类似的问题,但另一方面,在安装 Qt 时,它会要求您下载与 Qt 兼容的 MingW 版本。那么,当 Qt 安装程序询问您时,您是否尝试过安装它?

      【讨论】:

      • 是的,使用 MinGW 3.4.2。我在尝试 5.x 版本时也遇到了麻烦。
      【解决方案3】:

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

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

      您可以像使用 VB IDE(或者更确切地说像 eclipse、netbeans 等)一样体验它

      运行应用程序时。项目在调试或发布模式下编译。

      【讨论】:

        【解决方案4】:

        基于提问者后来的回答,而不是最初的问题。

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-21
          • 1970-01-01
          • 2021-03-21
          • 1970-01-01
          • 2014-02-18
          • 2021-07-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多