이 오류가 발생하지만 해결 방법을 모르겠습니다.
저는 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 파일에서로 바꿔야 합니까?
(저는 영어를 잘 못합니다. 감사합니다)
.LIB
파일 확장자를. 복잡하게하기 위해 ... 동적 링크 라이브러리 (예 :) 는 파일 확장자를 가진 가져 오기 라이브러리 를 *.DLL
동반 할 수 있습니다 . 이 가져 오기 라이브러리에는 . 자세한 내용은 다음을 참조하십시오. 링커 초보자 가이드.LIB
*.DLL