googletest mock设置 编译器选项 vs下

googletest正在学习中,大体了解了是什么东西。googletest则是一种expect eq规则,期望获得所需要的结果。mock则是模拟一种外部接口,让他提供特定情况下的返回值。粗以为是一种定义好的大型宏替换。


vs编译选项 /MD /mt  m为多线程或许是multithread,d为ddl  、/MDd 为debug版本,没有d为release版本。release会有优化。md为运行时由系统提供运行库统一管理,mt则是由程序提供dll。


有时编译会失败,比如如下

1>------ 已启动生成:  项目: gtest-md, 配置: Debug Win32 ------
1>  gtest-all.cc
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(1361,5): warning MSB8012: TargetPath(C:\code\googletest-master\googletest\msvc\gtest-md/Debug\gtest-md.lib) does not match the Library's OutputFile property value (C:\code\googletest-master\googletest\msvc\gtest-md\Debug\gtestd.lib). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(1363,5): warning MSB8012: TargetName(gtest-md) does not match the Library's OutputFile property value (gtestd). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Lib.OutputFile).
1>  gtest-md.vcxproj -> C:\code\googletest-master\googletest\msvc\gtest-md/Debug\gtest-md.lib
========== 生成:  成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========


说明成功了。但是编译为什么失败呢,因为我选择的是调试--开始执行

注意,这是运行exe的模式,所以才有了报错,gtest..lib无法执行。lib怎么可以执行呢。。。。

然后上面报错里有两个目录不一样,此时可以到项目--属性---配置属性---常规---中间目录输出目录里去修改。因为里边有些东西是不对应的,有的是projectname变量不同,后缀不同,所以这些东西都会影响输出。这就是vs给我们隐藏的东西。

关于各种变量解释如下链接http://blog.csdn.net/jiachunfeng/article/details/50008579


还有多看输出的报错信息吧。上面一堆,多看看。


正反目录问题/\这俩目录符号,linux windows下的区别再查。看下一篇文章吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值