我想在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();
}
软件包,假设所有开发库都会随之安装。)
答案 0 :(得分:1)
如the docs中所述,您需要包含小部件库以使用QApplication
。
将其添加到项目文件中:
QT += widgets
如果您不打算构建GUI应用程序,请改用QCoreApplication
。它没有那种依赖性。