我有一个用编译器VS2008编译的解决方案。它工作得很完美。它配有Google Test,Google Test库与解决方案相关联。据我所知,gtest.lib
应该使用与解决方案本身相同的编译器进行编译。
现在,我必须使用VS2013编译同样的解决方案。我得到了这个编译错误
Error 3 error LNK2038: mismatch detected for '_MSC_VER':
value '1700' doesn't match value '1800'
我认为我应该使用Visual Studio 2013编译用于Google Test的库。
我找不到这样的东西。 你能给我一个我应该去的Google Test库吗?
答案 0 :(得分:1)
您获得的链接器错误非常明显:您需要使用VS2013编译gtest.lib
。
“我认为我应该使用Visual Studio 2013编译用于Google Test的库。”
确切地说,只是那个。
“你能不能给我一个我应该去的Google测试库的提示?”
好吧,没有更多来自google test primer documentation(强调我的),抱歉(我怀疑你可以在其他地方可靠地下载合适的二进制文件):
设置新的测试项目
要使用Google Test编写测试程序,您需要将Google Test编译到库中并将测试与其链接。我们为一些流行的构建系统提供构建文件:msvc / 用于Visual Studio ,xcode /用于Mac Xcode,make /用于GNU make,codegear /用于Borland C ++ Builder,以及autotools脚本(不建议使用)< Google Test根目录中的strong>和CMakeLists.txt for CMake (推荐)。如果您的构建系统不在此列表中,您可以查看make / Makefile以了解如何编译Google Test(基本上您要在头文件搜索中使用GTEST_ROOT和GTEST_ROOT / include编译src / gtest-all.cc路径,其中GTEST_ROOT是Google Test根目录。)
一旦您能够编译Google Test库,您就应该为测试程序创建项目或构建目标。确保在头搜索路径中包含GTEST_ROOT / include,以便编译器在编译测试时可以找到“gtest / gtest.h”。设置您的测试项目以链接到Google Test库(例如,在Visual Studio中,这是通过添加对gtest.vcproj的依赖来完成的。)
如果您仍有疑问,请查看Google Test自己的测试是如何构建的,并将其作为示例使用。
我个人更喜欢使用src/gtest-all.cc
来构建测试运行器,并使用源代码中的测试项目进行链接。这是最简单,最便携的方式恕我直言(使用你的自定义GNU makefile)。
正如您对OP的评论所说,只需使用VS2013编译器即可轻松完成“prebuild”,并与其他项目进行链接。
答案 1 :(得分:0)
请注意,native GTEST package on NuGet包含gtest.lib
。具有使gtest include
文件夹自动可用的额外好处。