1

我有这个最小的例子:

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 不告诉我无效的论点是什么?

4

1 回答 1

0

我想知道链接器是否找不到 lQtCored4 库?它实际上在 -L 目录中吗?

于 2012-08-06T09:30:18.950 回答