链接器访问另一个Visual Studio项目中的类时出错

时间:2017-07-04 15:49:03

标签: c++ visual-studio qt unit-testing

我在visual studio中有一个(qt)程序,我想创建(qt)单元测试。我认为最好的方法是在同一个Visual Studio解决方案中将单元测试放在一个单独的项目中,然后包含我想从另一个项目中测试的类。

但是,我为单元测试创​​建了第二个项目,当我从第一个项目中包含一个类并初始化它时,我得到一个链接器错误,如下所示:

#pragma once
class SimpleClass
{
public:
    SimpleClass();
};

我已将.h和.cpp文件的目录添加到测试项目属性中的其他包含目录中,并且我已使用第一个项目中的exe添加.lib文件输出第二个项目属性的附加库目录,但这似乎没有修复此链接器错误并允许测试运行。为了让我的项目成功编译,我缺少什么?

作为参考,我的文件是:

SimpleClass.h(在项目1中):

#include "SimpleClass.h"

SimpleClass::SimpleClass()
{
}

SimpleClass.cpp(在项目1中):

#pragma once

#include <QTest>

class SimpleTest : public QObject
{
Q_OBJECT
private slots:
    void testSimpleClass();
};

SimpleTest.h(在项目2中):

#include "SimpleTest.h"

#include "SimpleClass.h"

void SimpleTest::testSimpleClass()
{
    SimpleClass *splClass = new SimpleClass();
}

SimpleTest.cpp(在项目2中):

#include <QtTest>
#include "testqstring.h"
#include "SimpleTest.h"

int main(int argc, char** argv) {
    QApplication app(argc, argv);

    TestQString testSuite1;
    SimpleTest testSuite2;
    return QTest::qExec(&testSuite1, argc, argv) | QTest::qExec(&testSuite2, argc, argv);
}

main.cpp(在项目2中):

{{1}}

0 个答案:

没有答案