VS2010使用GooglTest,GoogleMock
来源:互联网 发布:说散就散 知乎 编辑:程序博客网 时间:2024/04/29 11:57
一、环境搭建
下载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
新建一个控制台程序 源码如下:
#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 使用控件常见问题
- Windows XP硬盘安装Ubuntu 12.04双系统图文详解(2)安装
- 常用对象API(String类-特点)
- boa 服务器 错误 cgi_header: unable to find LFLF错误的一种可能
- mac 常用终端命令与使用
- js 自动刷新
- VS2010使用GooglTest,GoogleMock
- SQLserver2008全文检索使用方法
- C计算函数运行时间
- 将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网
- js 触发 select onchange事件
- JDev: How to make JDev run ant script in debug mode permanently
- 免安装JDK,bat执行jar
- GTK+安装笔记
- java架构师之路:JAVA程序员必看的15本书