Qt链接器错误Qmake + Makefile

时间:2015-05-01 11:23:58

标签: qt makefile linker-errors qmake

我想在Qt Creator之外构建一个Qt项目,所以我使用qmake在以下项目文件中生成Makefile:

MQTopic QMsPublisher = qm.accessTopic("qmstop", "", CMQC.MQTOPIC_OPEN_AS_PUBLICATION, CMQC.MQOO_OUTPUT);
MQMessage sendQMsMsg = new MQMessage();
sendQMsMsg.writeString(thisQM);
QMsPublisher.put(sendQMsMsg);

这也是由qmake生成的,禁止c ++ 11标志和第二个包含路径。 Makefile包含Qt库的链接路径

TEMPLATE = app
TARGET = test
INCLUDEPATH += . \
               /usr/include/qt5/QtWidgets/
QMAKE_CXXFLAGS += --std=c++11

# Input
SOURCES += test.cc

上面的奇怪之处在于我没有LIBS = $(SUBLIBS) -L/usr/X11R6/lib64 -lQt5Gui -L/usr/lib/x86_64-linux-gnu -lQt5Core -lG L -lpthread 个文件夹。相反,/usr/X11R6位于libQt5Gui.so,所以我对X11R6来自哪里感到有些困惑。

无论如何,这是我的链接器输出:

/usr/lib/x86_64-linux-gnu

以上是构建以下来源的结果:

test.cc:(.text.startup+0x20): undefined reference to `QApplication::QApplication(int&, char**, int)'
test.cc:(.text.startup+0x25): undefined reference to `QApplication::exec()'
test.cc:(.text.startup+0x2f): undefined reference to `QApplication::~QApplication()'
test.cc:(.text.startup+0x43): undefined reference to `QApplication::~QApplication()'

当我尝试在Qt Creator中构建项目文件时,会出现相同的错误。我错过了图书馆吗?或者错误地配置了什么?

(我在Ubuntu 14.04上,我刚从repo安装了#include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); return app.exec(); } 软件包,假设所有开发库都会随之安装。)

1 个答案:

答案 0 :(得分:1)

the docs中所述,您需要包含小部件库以使用QApplication

将其添加到项目文件中:

QT += widgets

如果您不打算构建GUI应用程序,请改用QCoreApplication。它没有那种依赖性。