【发布时间】:2012-08-22 11:18:01
【问题描述】:
基本上我遵循基本示例here。我的.pro 文件包含QT += core network qtestlib。 [已解决] testlib 代替错字 qtestlib
当我包含QVERIFY 时,会出现以下链接器错误:
testwaypointlist.obj:-1: error: LNK2019: unresolved external symbol "bool __cdecl
QTest::qVerify(bool,char const *,char const *,char const *,int)"
(?qVerify@QTest@@YA_N_NPBD11H@Z) referenced in function "private: void __thiscall
TestWaypointList::fillWaypoints(void)" (?fillWaypoints@TestWaypointList@@AAEXXZ)
我错过了链接哪些文件?没有QVERIFY,链接器错误就会消失。
头文件:
#include <QObject>
#include <QtTest/QtTest>
#include "waypointlist.h"
//
// Testing the waypoint list
//
class TestWaypointList : public QObject
{
Q_OBJECT
private:
WaypointList _waypointList;
public:
explicit TestWaypointList(QObject *parent = 0);
private slots:
void fillWaypoints();
};
cpp:
//
// Fill the waypoint list
//
void TestWaypointList::fillWaypoints()
{
_waypointList = WaypointList();
.....
for (int i=0; i < TESTWPLISTCOUNT; i++) {
.....
TestWaypointList::_waypointList.updateOrAppend(id, timeframe);
}
QVERIFY(TestWaypointList::_waypointList.count() == 1); // causing the linker error
}
【问题讨论】:
-
你的 .pro 文件中应该是 QT += testlib,而不是 QT += qtestlib。
-
就是这样,我误读了这个例子:doc.qt.nokia.com/4.7-snapshot/… 如果你把它写成答案,我很乐意接受。都是我的错:-(
标签: unit-testing qt4 qt-creator