使用 MinGW 的 g++ 在 Windows XP 中编译 Qt 程序
Compiling a Qt program in Windows XP with MinGW's g++
我有一个存根Qt应用程序,我不断收到编译器错误
#include <QApplication>
int main(int argc, char *argv[])
{
return 0;
}
我使用了qmake -project
和qmake
命令,据我所知他们做得很正确。当我随后按照命令调用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
我在谷歌上的搜索告诉我,线程很重要,但不是如何保持修复此错误。任何帮助都将不胜感激。
编辑(从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
++milot
我只使用MinGW在Windows上编译Qt,这是确保您拥有所需一切的最简单方法。
以下是开源Qt版本的链接:http://trolltech.com/downloads/opensource/appdev/windows-cpp
使用"或下载包含MinGW编译器的Qt:大小:149,3 Mb"链接。
使用MinGW的另一种方法是使用MinGW编译Qt,然后编译您的应用程序,但这取决于您是在MSYS中编译还是仅使用MinGW。
我之前在安装从网上下载的MingW时也遇到过类似的问题,但另一方面,在安装Qt时,它会要求您下载与Qt兼容的MingW版本。那么,当Qt安装程序问你时,你试过安装它吗?
Qt 4.5具有易于开发应用程序的Qt Creator 1.1。
设计和编码在Qt Creator中结合在一起,使用起来更容易。
您可以像使用VBIDE(或者更像eclipse、netbeans等)一样体验它
运行应用程序时。项目是在调试模式或发布模式下编译的。
基于提问者后来的回答,而不是最初的问题。
在MSYS提示符下运行"ls/mingw/lib/libmsimg32.a",看看是否有该文件。我的安装完成了(MinGW GCC 3.4.5)。如果你有那个文件,你可能需要添加-L/MinGW/lib。如果你没有这个文件,你可能错过了安装MinGW的windows api部分。
无论哪种方式,请删除-phread。您使用的是Win32 api。
如果这不起作用,你需要指定你正在使用哪个版本的MinGW,如果你正在使用MSYS,则需要指定哪个版本的MSYS。
- 使用 Bazel 编译 QT 应用程序时访问资源
- 如何使用MinGW编译器和SSL支持静态编译Qt
- 我可以在不使用Qt for Webassembly的情况下使用Emscripten编译Qt吗?
- 在 centos 7 上编译 Qt 5.11.1 中的错误
- 使用其他编译器编译QT代码
- 为arm64-v8a编译Qt和OpenCV
- C++编译Qt for Visual Studio 2017的问题
- 编译Qt项目,得到错误QQmlEngine:没有这样的文件或目录编译终止
- 编译Qt项目给出了对运算符delete(void*,unsigned int)的未定义引用
- Qt项目与自定义共享库交叉编译Qt
- 交叉编译 qt:加载共享库时出错
- 交叉编译Qt模块(不构建完全全新构建)并添加到现有Qt中
- 如何静态编译QT 5应用程序
- 无法编译QT创建快速应用程序项目
- 编译 Qt 安装程序框架静态
- 如何在QT Creator开源版本中为嵌入式Linux交叉编译qt
- 尝试在代码块中编译 Qt/C++ 代码
- 我可以在编译Qt应用程序的同时忽略Qt的打包库吗?
- 使用 Qt (Ubuntu 14.04) 编译 qt-dab 时出错
- 无法使用qlogvalueaxis.h编译Qt项目