Я отримую цю помилку, але не знаю, як її виправити.
Я використовую Visual Studio 2013. Я створив ім'я рішення MyProjectTest Це структура мого тестового рішення:
- функція.h
#ifndef MY_FUNCTION_H
#define MY_FUNCTION_H
int multiple(int x, int y);
#endif
-function.cpp
#include "function.h"
int multiple(int x, int y){
return x*y;
}
- main.cpp
#include <iostream>
#include <cstdlib>
#include "function.h"
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << multiple(a, b) << endl;
system("pause");
return 0;
}
Я новачок; це проста програма, і вона працює без помилок. Я прочитав в Інтернеті і зацікавився модульним тестом, тому створив тестовий проект:
Файл> Нове> Проект ...> Встановлено> Шаблони> Visual C ++> Тест> Проект рідного тесту>
Ім'я: UnitTest1 Рішення: Додати до рішення Потім місце розташування автоматично переключилося на шлях поточного відкритого рішення Це структура папок рішення:
Я лише відредагував файл unittest1.cpp:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "../MyProjectTest/function.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestEqual)
{
Assert::AreEqual(multiple(2, 3), 6);
// TODO: Your test code here
}
};
}
Але я отримую помилку LNK2019: невирішений зовнішній символ. Я знаю, що реалізація функції multiple відсутня. Я спробував видалити файл function.cpp, і я замінив декларацію визначенням, і він запустився. Але писати декларацію та визначення в одному файлі не рекомендується. Як я можу виправити цю помилку, не роблячи цього? Чи слід замінити #include "../MyProjectTest/function.cpp"
на файл unittest.cpp?
(Я не дуже добре володію англійською мовою. Дякую)
.LIB
розширення файлу. Щоб ускладнити ситуацію ... бібліотеки динамічних посилань (тобто *.DLL
) можуть мати супровідну бібліотеку імпорту, яка також має .LIB
розширення файлу. У цій бібліотеці імпорту перераховані всі смаколики, надані *.DLL
. Для отримання додаткової інформації, будь ласка, прочитайте: Посібник для початківців до