我正在尝试为大学设置我的Qt而且我遇到了一些问题。我正在运行Windows 8,我不确定哪个版本的Qt或QtCreator而不是最新版本 - 我们获得了版本安装程序所以我们必须使用这个版本,尽管我在QtCreator设置之前自己安装了最新的MinGW。
我在QtCreator中尝试了一些演示代码,当我尝试运行以下代码时,我收到错误“无法识别的命令行选项”-WI“。
#include <QtCore/QCoreApplication>
#include <QtGui/QMessageBox>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QMessageBox msgBox;
msgBox.setText("This is some text.");
msgBox.exec();
return a.exec();
}
我需要做我的任务,当我收到所有这些奇怪的错误时,我不确定如何做到这一点。 任何帮助将不胜感激。
提前致谢!
*编辑*
这是我在构建过程中可以在QtCreator中找到的错误输出。
Running build steps for project TestProject...
Configuration unchanged, skipping qmake step.
Starting: "C:/MinGW/bin/mingw32-make.exe" -w
mingw32-make: Entering directory 'C:/Users/Nick/Documents/Qt Projects/TestProject-build-desktop'
C:/MinGW/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Users/Nick/Documents/Qt Projects/TestProject-build-desktop'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,console -mthreads -Wl -o debug\TestProject.exe debug/main.o -L"c:\Qt\2010.04\qt\lib" -lQtCored4
Makefile.Debug:73: recipe for target 'debug\TestProject.exe' failed
mingw32-make[1]: Leaving directory 'C:/Users/Nick/Documents/Qt Projects/TestProject-build-desktop'
Makefile:34: recipe for target 'debug' failed
mingw32-make: Leaving directory 'C:/Users/Nick/Documents/Qt Projects/TestProject-build-desktop'
g++: error: unrecognized command line option '-Wl'
mingw32-make[1]: *** [debug\TestProject.exe] Error 1
mingw32-make: *** [debug] Error 2
The process "C:/MinGW/bin/mingw32-make.exe" exited with code %2.
Error while building project TestProject (target: Desktop)
When executing build step 'Make'
以下是QtCreator生成的.pro文件的内容:
QT += core
QT -= gui
TARGET = TestProject
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
答案 0 :(得分:4)
问题很明显:
g ++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,console -mthreads -Wl -o debug \ TestProject.exe debug / main.o -L“c:\ Qt \ 2010.04 \ qt \ lib“-lQtCored4
我不确定exaclty是如何编译的,但对我而言,它看起来像是-Wl${somestuff}
的makefile,并且由于某种原因${somestuff}
未定义。要么是这样,要么在链接命令的commendline中存在虚假-Wl
,但这似乎不太可能。
答案 1 :(得分:4)
正如Mats所说,问题是命令行中的额外-Wl
。
这是由于QT配置文件中的错误,谢天谢地,这可以“永久”(本地)修复。
您需要编辑这些文件中的一个(可能是两个)(通常在C:\Qt\2010.02\qt\mkspecs
中):
mkspecs\default\qmake.conf
mkspecs\win32-g++\qmake.conf
改变这个:
QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl
到此:
QMAKE_LFLAGS = -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
因为第一行开头的-Wl,
错误地位于第二行的末尾。
完成此编辑后,如果清理然后重建项目,则不会再看到错误。
注意: