gMock无法与Visual Studio 2019链接

问题描述 投票:0回答:1

我通过Nuget将gmock添加到我的VS2019 C++项目中。现在,当我尝试编译时,我收到以下错误。GoogleTest是我的测试类的名称。我是C++新手。

Suppression State Error LNK2038 mismatch detected for '_MSC_VER': value '1800' doesn't match value '1900' in GoogleTest.obj Test?

这个错误到底是什么意思?谢谢您。

c++ nuget visual-studio-2019 gmock
1个回答
0
投票

抑制状态错误 LNK2038 检测到'_MSC_VER'不匹配:值'1800'与GoogleTest.obj测试中的值'1900'不匹配。

不知道你的项目是不是从其他老版本的VS迁移到VS2019的。

1) 如果是这样,首先,你应该删除旧的。gmock 您之前在 包括目录(右击项目-->Properties-->VC++ Directories), 额外包括目录(Properties-->C/C++-->General), 额外的依赖性(属性-->Linker-->Input).

2)第二种,安装nuget包 gmock 1.10.0 通过右键点击你的项目-->管理Nuget包-->搜索gmock 1.10.0并安装它。

enter image description here

3) 右键点击你的项目--&gt。Properties--> -> -> ->Configuration Properties--> -->General-->确保 工具集PlarformVS2019 v142.

4) 关闭VS Instance,进入你的项目位置,并删除所有的 DebugRelease 文件夹,然后重新启动项目并重新构建。

另外,或者你可以尝试在VS2019中新建一个c++项目,安装最新的。gmock 在你的新项目中加入nuget包,然后在你的新项目中加入 迁徙 到新的项目中,然后重新测试。


0
投票

如果你使用的是预编译的NuGet包(如 来自微软的听起来你使用的NuGet包是在不同的VS版本上构建的,我上次检查过,有些预构建的包甚至不包含gMock部分,但现在可能已经改变了。

我上次检查时,一些预建的甚至不包含框架的gMock部分,但现在可能已经改变了。

比较好的方法是使用一个非预建的NuGet包,如 谷歌的. 只需删除您当前的NuGet包,并添加来自Google的包。

注意:如果你想把gMock放在一个单独的库项目中,可能会比较复杂。在发现这样做是多么的不明显之后,我写了一个问题答案。参见答案 此处.

© www.soinside.com 2019 - 2024. All rights reserved.