c++ - 如何在 Visual Studio 中正确链接文件以运行本机测试?
问题描述
我正在尝试为我的课程编写单元测试,但我得到了“未解析的外部符号”。没有语法错误,我尝试在 Microsoft 官方网站上查找原因,但不幸的是,它可能是由一百万种不同的原因引起的。关于我能做什么或可能导致它的任何建议?这是我的代码:
// Example.h file
#pragma once
#include <iostream>
using namespace std;
class Example {
public:
int addTwoNumbers(int first, int second);
};
// Example.cpp file
#include "Example.h"
#include <iostream>
using namespace std;
int Example::addTwoNumbers(int first, int second) {
return first + second;
}
// Test.cpp file
#include "pch.h"
#include "../Project/Example.h"
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace Tests
{
TEST_CLASS(Tests)
{
public:
TEST_METHOD(UnitTest1)
{
Example e;
Assert::AreEqual(4, e.addTwoNumbers(2, 2)); // this line is causing issues
}
};
}
我得到的确切错误:
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "public: int __thiscall Example::addTwoNumbers(int,int)" (?addTwoNumbers@Example@@QAEHHH@Z) referenced in function "public: void __thiscall Tests::Tests::UnitTest1(void)" (?UnitTest1@Tests@1@QAEXXZ) Tests C:\Users\me\source\repos\Tests\Tests.obj 1
解决方案
您可以检查是否包含以下步骤。你可以参考这个链接Write unit tests for C/C++ in Visual Studio
。
添加对
UnitTest
.链接到对象或库文件:
Properties->Linker->Input->Additional Dependencies->input ..\ProjectName\Debug\*.obj
为头文件添加#include 指令:
#include "../Project1/Example.h"
如果仍然出现lnk2019,尝试将以下代码添加到Example.cpp。
#include<iostream>
#include "Example.h"
using namespace std;
int Example::addTwoNumbers(int first, int second) {
return first + second;
}
int main()
{
return 0;
}
推荐阅读
- java - 我怎样才能返回一个对话框并使用意图呢?
- twilio - Twilio 在帖子正文中缺少必需的参数 To
- node.js - 如何在 TypeORM 中使用路由?
- python - Djanog 错误(DoesNotExist at /admin/ Profile 匹配查询不存在)
- reactjs - 如何在 react-native 中使用数组 map() 防止组件重复
- python - 在后台执行一条mysql语句
- angular - Order JSON file from GET function in Angular?
- r - 命名数组中的维度组
- java - 我对查看整数是否在数组中的二进制搜索一直在循环,有人知道为什么吗?(在 Java 中)
- python - 如何操作多个数据帧并将值存储在新数据帧中