웹 사이트에 문서화되어 있지 않으며 사람들이 프레임 워크를 설정하는 데 문제가있는 것 같습니다. 누군가 샘플 프로젝트 설정에 대한 단계별 소개를 보여줄 수 있습니까?
답변:
Arlaharen이 말한 것은 기본적으로 옳았지만 링커 오류를 설명하는 부분을 생략했습니다. 우선 CRT 없이 런타임 라이브러리로 애플리케이션을 빌드해야합니다 . 응용 프로그램 배포를 실제로 단순화하므로 항상이 작업을 수행해야합니다. 이렇게하지 않으면 모든 사용자에게 Visual C ++ 런타임 라이브러리가 설치되어 있어야하며, 시스템에 미스터리 한 DLL이 없다고 불평하지 않는 사용자는 링크하는 데 추가로 수백 킬로바이트가 필요합니다. CRT를 정적으로, 당신은 나중에 지원에서 많은 두통을 덜어줍니다 (저를 믿으십시오-나는 그것을 어려운 방법으로 배웠습니다!).
어쨌든이 작업을 수행하려면 대상의 속성-> C / C ++-> 코드 생성-> 런타임 라이브러리로 이동하고 릴리스 빌드의 경우 "Multi-Threaded"로 설정하고 "Multi-Threaded Debug"로 설정해야합니다. 디버그 빌드.
gtest 라이브러리를 동일한 방식으로 내장되어 있기 때문에, 당신은 당신이 올바른 버전에 연결되어 있는지 확인해야 할 것이 , 그렇지 않으면 당신은 BTW (본 오류는 런타임 라이브러리의 다른 사본에 끌어 링커,이 MFC를 사용하는지 여부에 차이가 없어야합니다.) gtest를 디버그 및 릴리스 모드 로 빌드 하고 두 복사본을 모두 유지해야합니다. 그런 다음 릴리스 빌드의 gtest.lib / gtest_main.lib 및 디버그 빌드의 gtestd.lib / gtest_maind.lib에 대해 링크합니다.
또한 응용 프로그램이 gtest 헤더 파일이 저장된 디렉토리 (속성-> C / C ++-> 일반-> 추가 포함 디렉토리)를 가리키는 지 확인해야하지만 링커 오류가 발생하면 가정합니다. 이 부분을 이미 수정했거나 그렇지 않으면 먼저 처리해야 할 컴파일러 오류가 훨씬 더 많을 것입니다.
(이 지침은 디버그 구성에 대해 작동하는 테스트 프레임 워크를 가져옵니다. 릴리스 구성에 동일한 프로세스를 적용하는 것은 매우 간단합니다.)
Google C ++ 테스트 프레임 워크 받기
C:\gtest
프레임 워크 라이브러리 빌드
C:\gtest\msvc\gtest.sln
Visual Studio에서 열기테스트 프로젝트 생성 및 구성
C:\gtest\include
C:\gtest\msvc\gtest\Debug
또는 추가C:\gtest\msvc\gtest-md\Debug
gtestd.lib
모든 것이 작동하는지 확인
main()
함수가 포함 된 테스트 프로젝트에서 cpp를 엽니 다 .다음 코드를 붙여 넣으십시오.
#include "stdafx.h"
#include <iostream>
#include "gtest/gtest.h"
TEST(sample_test_case, sample_test)
{
EXPECT_EQ(1, 1);
}
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
std::getchar(); // keep console window open until Return keystroke
}
디버그> 디버깅 시작
모든 것이 제대로 작동하면 콘솔 창이 나타나고 단위 테스트 결과가 표시됩니다.
설정에 대한 비디오 자습서를했습니다. http://www.youtube.com/watch?v=mzSzwQOmMRs
gtest를 구축 한 후 이것이 내가 한 일입니다.
그 후 TEST 또는 TEST_F를 사용하여 테스트를 작성하고 주요 기능과 함께 컴파일합니다.
int main(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
gtest_main.lib
기본 main
함수 가 포함되어 있으므로 직접 작성한 경우에는 포함하지 않을 수 있습니다 main
.
Microsoft Visual Studio에서 잘못 구성된 런타임 라이브러리 유형으로 인해 링크 오류가 발생합니다.
VS 2005 (및 2008)는 기본적으로 다중 스레드 DLL 또는 다중 스레드 디버그 DLL을 사용합니다. 그러나 Google 테스트 라이브러리는 기본적으로 Mulithreaded 또는 Mulithreaded 디버그 런타임을 사용합니다.
따라서 Google 테스트 라이브러리에 적합한 런타임 라이브러리 유형을 선택하십시오. (구성 속성-> 코드 생성-> 런타임 라이브러리).
많은 오류, 수정하는 데 시간이 걸렸습니다.
다음은 간단한 단계입니다.
# https://github.com/google/googletest 에서 Googletest ZIP 파일을 다운로드합니다.
# Googletest 비주얼 스튜디오 솔루션
Open C:\googletest\googletest\msvc\2010\gtest.sln
Change "Solution configuration"
from "Debug" to "Release"
Build Solution
creates gtest.lib
# 프로젝트 :
Project Properties > Configuration Properties > VC++ Directories > Include Directories
append the following: ;C:\googletest\googletest\include
Project Properties > Configuration Properties > Linker > General > Additional Library Directories >
append the following: ;C:\googletest\googletest\msvc\2010\gtest\Win32-Release
Project Properties > Configuration Properties > C/C++ > Runtime Library
Remove the value of the above. (or match it to Googletest project)