Как решить ошибку LNK2019: неразрешенный внешний символ - функция?

Я получаю эту ошибку, но я не знаю, как ее исправить.

Я использую Visual Studio 2013. Я сделал название решенияMyProjectTest Это структура моего тестового решения:

-function.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: неразрешенный внешний символ. Я знаю, что реализация функциимножественный пропал, отсутствует. Я попытался удалить файл function.cpp и заменил объявление определением, и оно запустилось. Но записывать декларацию и определение в одном файле не рекомендуется. Как я могу исправить эту ошибку, не делая этого? Должен ли я заменить на#include "../MyProjectTest/function.cpp" в файле unittest.cpp?(Я не очень хорошо разбираюсь в английском. Спасибо)

Ответы на вопрос(10)

Ваш ответ на вопрос