私は一日中、Visual Studio 2013 で GoogleTest を動作させようとしました。最終的に「動作」させましたが、関数の定義が .h ファイルにある場合にのみ動作します。= などの個別のコンパイルの使用:
// simplemath.h
#include <cmath>
double cubic(double d);
// simple.cpp
#include "simplemath.h"
double cubic(double d)
{
return pow(d, 3);
}
// unittest_SimpleMath.cpp
#include "gtest/gtest.h"
#include "simplemath.h"
TEST(testMath, myCubeTest)
{
EXPECT_EQ(1000, cubic(10));
}
次のエラーが発生します。
1>------ Build started: Project: unittest_SimpleMath, Configuration: Release Win32 ------
1> unittest_SimpleMath.cpp
1>unittest_SimpleMath.obj : error LNK2001: unresolved external symbol "double __cdecl cubic(double)" (?cubic@@YANN@Z)
1>C:\Users\alex\Documents\Visual Studio 2013\Projects\SimpleMath\Release\unittest_SimpleMath.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========
編集:重要なことを1つ言及するのを忘れていました。チュートリアルhttp://www.bogotobogo.com/cplusplus/google_unit_test_gtest.phpに従って、Gtest と VS2013 をペアにする方法を見つけました。私のソリューション構造は des と同じです。チュートリアルで - 3 つのプロジェクト。