我下载了Google Test并在 MSVC 2010 下构建了它。然后我将它的目标 gtest.lib(或调试配置下的 gtestd.lib)与我的可执行文件相关联。
结果是一长串多重定义的符号。简而言之:
error LNK1169: one or more multiply defined symbols found
warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
warning LNK4098: defaultlib 'LIBCMTD' conflicts with use of other libs; use /NODEFAULTLIB:library
error LNK2005: _vprintf already defined in MSVCRTD.lib(MSVCR100D.dll)
error LNK2005: _printf already defined in MSVCRTD.lib(MSVCR100D.dll)
这样的例子不胜枚举。大多数是 VC 运行时符号,但少数是 gtest 符号。我犯了什么错误?gtest入门书指出:
要使用 Google Test 编写测试程序,您需要将 Google Test 编译成一个库并将您的测试与它链接起来。
但除此之外并没有真正详细说明。