我有这个最小的例子:
QT -= gui
CONFIG += qt console
SOURCES += main.cpp
#include <QDebug>
int main(int argc, char** argv)
{
return 0;
}
在构建项目时会出现此链接错误:
c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe:最终链接失败:参数无效
链接命令如下所示:
g++ -Wl -Wl -Wl,-subsystem,console -mthreads -o debug\test.exe debug/main.o -L"c:\QtSDK\Desktop\Qt\4.8.1\mingw\lib" -lQtCored4
我的设置:
- 视窗 XP SP3
- Qt SDK 1.2.1 版(QtCreator 2.4.1,Qt Desktop 4.8.1 版)(全新安装于
C:\QtSDK\
) - MinGW32 4.4.0 版(包含在 Qt SDK 中
C:\QtSDK\mingw\
)
如果我删除#include <QDebug>
,它编译得很好。如果我包含其他一些 Qt 头文件,例如 QCoreApplication,它也可以正常编译。
编辑:这是一个非常奇怪的最小示例。考虑一个像上面这样的空主函数。现在,如果我把这些包括,它无法链接:
#include <QWidget>
#include <QVariant>
但是,如果我删除其中一个,它会链接而不会出现错误。
有什么问题?为什么 mingw 不告诉我无效的论点是什么?