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下的区别再查。看下一篇文章吧