我花了一整天的时间试图让 GoogleTest 在 Visual Studio 2013 中工作。最后,让它“工作”,但它只有在函数的定义放在 .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 ==========
编辑:忘了提到一件重要的事情。我按照教程http://www.bogotobogo.com/cplusplus/google_unit_test_gtest.php弄清楚如何配对 Gtest 和 VS2013。我的解决方案结构与 desc 相同。在教程中 - 3 个项目。