VS2010使用GooglTest,GoogleMock
来源:互联网 发布:淘宝怎么把好评转差评 编辑:程序博客网 时间:2024/05/16 00:55
一、环境搭建
下载gmock-1.6.0.zip 官网:gmock
二、设置系统环境变量
说明:将gmock-1.6.0.zip解压到D:盘
GMOCK_DIR=D:\gmock-1.6.0
GTEST_DIR=D:\gmock-1.6.0\gtest
三、编译gmock源码
进入D:\gmock-1.6.0\msvc\2010
用vs2010打开gmock.sln,打开后,按F7
生成解决方案后,将会在Debug中生成gmock.lib,gmock_main.lib,gmock_test.exe
gmock就编译结束了。
四、在VS2010中使用gmock
新建一个控制台程序 源码如下:
- <SPAN style="FONT-SIZE: 12px">#include<iostream>
- #include<gtest/gtest.h>
- #include<gmock/gmock.h>
- #pragma comment(lib,"gmock.lib")
- using namespace std;
- int main(int argc, char** argv)
- {
- testing::InitGoogleMock(&argc, argv);
- int r = RUN_ALL_TESTS();
- return 0;
- }</SPAN>
#include<iostream>#include<gtest/gtest.h>#include<gmock/gmock.h>#pragma comment(lib,"gmock.lib")using namespace std;int main(int argc, char** argv){testing::InitGoogleMock(&argc, argv); int r = RUN_ALL_TESTS(); return 0;}
说明:将gmock.lib拷贝到工程目录里。
在工程的VC++目录-》包含目录中添加 $(GMOCK_DIR)/include;$(GTEST_DIR)/include;
错误处理:
如果编译时出现以下内容:
libcmtd.lib(errmode.obj) : error LNK2005: ___set_app_type 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(invarg.obj) : error LNK2005: __invoke_watson 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(setlocal.obj) : error LNK2005: __configthreadlocale 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0dat.obj) : error LNK2005: _exit 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0dat.obj) : error LNK2005: __exit 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0dat.obj) : error LNK2005: __cexit 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0dat.obj) : error LNK2005: __amsg_exit 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0dat.obj) : error LNK2005: __initterm_e 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0.obj) : error LNK2005: _mainCRTStartup 已经在 MSVCRTD.lib(crtexe.obj) 中定义
1>libcmtd.lib(mlock.obj) : error LNK2005: __lock 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(mlock.obj) : error LNK2005: __unlock 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(winxfltr.obj) : error LNK2005: __XcptFilter 已经在 MSVCRTD.lib(MSVCR100D.dll) 中定义
1>libcmtd.lib(crt0init.obj) : error LNK2005: ___xi_a 已经在 MSVCRTD.lib(cinitexe.obj) 中定义
解决方法:项目属性(Alt+F7)——C/C++——代码生成——
如果是Debug的“在静态库中使用MFC”,不要使用MDd,改用MTd,然后编译即可通过。
如果是Debug的“在共享DLL中使用MFC”,注意不要使用MTd,改用MDd;
如果是Release版本“在静态库中使用MFC”,不要使用MD,使用MT;
如果是Release版本的“在共享DLL中使用MFC”,不要使用MT,使用MD。
保持gmock生成的gmock.lib和工程中使用gmock.lib编译代码生成时,运行库的设置相同。
- VS2010使用GooglTest,GoogleMock
- VS2010使用GooglTest,GoogleMock
- googlemock
- googlemock
- googlemock
- centos 下 安装使用GoogleMock
- vs2010使用
- vs2010使用
- VS2010使用
- vs2010使用
- 单元测试中的 gtest and googlemock
- VS2010 使用点滴
- windows7+VS2010使用心得
- vs2010使用log4net
- vs2010使用技巧
- vs2010 使用技巧
- 使用VS2010编译QT
- VS2010 使用控件常见问题
- Class ThreadLocal<T>
- Centos6.4下安装Codeblocks12.11
- <c:foreach> 标签 varStatus属性的含义
- C++ 标准输出如何控制小数点后位数
- [leetcode] Permutations II
- VS2010使用GooglTest,GoogleMock
- 为什么要遵循统一的函数连接规范?什么事连接规范
- SMS Call---发送短信和打电话的方法
- NWChem 6.1.1 CCSD(T) parallel running
- Centos6.4下安装Boost1.51
- hdu 1203 I NEED A OFFER!
- Centos下安装Log4cxx
- HTML入门教程 - 3.页面标题(Titles of each pages)
- [leetcode] Anagrams