所以我需要使用gTest。
我有一个带静态函数的util类。
头文件包含函数的declerations:
class a
{
public:
a();
virtual ~a();
static bool test();
}
在cpp文件上实现:
a::a() { }
a::~a() { }
bool a::test() { return true; }
在测试单元文件上我刚刚添加了一个测试:
TEST(a, a)
{
EXPECT_EQ(true,a::test());
}
我收到了链接器错误:
Error 3 error LNK2001: unresolved external symbol "public: static bool __cdecl a::test()" (?test@a@@SA_NIPAD0@Z) UnitTest.obj UnitTest
如果静态函数的实现在.h文件中,一切都顺利进行。
无论如何以单向测试静态功能?
答案 0 :(得分:1)
目前,您实现的test()没有返回类型。有时可能会将其解释为默认int。通过更改此内容添加类型:
a::test() { return true; }
进入这个:
bool a::test() { return true; }
然而编译器之前没有抱怨它似乎很奇怪。编译后的文件仍未正确链接。
首先尝试更改代码。