Google Test预构建VS 2013

时间:2015-02-24 11:11:09

标签: c++ visual-studio linker-errors googletest

我有一个用编译器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库吗?

2 个答案:

答案 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文件夹自动可用的额外好处。