gtest + protoBuf vs2010 win32 环境搭建(解决lib包冲突问题)
来源:互联网 发布:双色球缩水软件 在线 编辑:程序博客网 时间:2024/05/06 00:56
之前在使用gtest+protobuf混合搭建环境时,出现些小问题,两个lib的dll文件产生冲突了(编译gtest和protobuf时,使用不同的runtime library,导致lib文件有冲突),我就重新搭建了一次环境,把问题解决了。
一、gtest环境搭建
1.下载gtest
进入gtest官网http://code.google.com/p/googletest/下载相关的文件(目前最新版本为gtest-1.6.0.zip)
2.编译gtest工程,生成.lib文件
解压gtest-1.6.0.zip,打开进入msvc文件夹,打开gtest工程,由于我使用vs2010,编译前需要进行版本转换。
转换版本后,进入项目配置页面,把configuration properties -> C/C++ -> Code Generation -> Runtime Library 改为 MDd
(这里我们必须保证编译gtest时和protobuf设置的Runtime Library是一致的,才不会出现lib包冲突)
编译gtest工程,进入工程的DEBUG目录,就能找到gtest.lib文件
3.检测gtest是否可用
新建工程,引入头文件和.lib文件
把刚编译好的gtestd.lib文件复制到工程目录下
编写测试代码
运行
成功
二、protobuf环境搭建
1.下载protobuf
进入protobuf官网 http://code.google.com/p/protobuf/ 下载protobuf和.proto文件编译器(目前最新版本是protobuf-2.4.1.zip)
2.编译protobuf
解压protobuf-2.4.1.zip,进入vsprojects文件夹,打开protobuf工程
进行版本转换,这里的runtime library默认是MDd,不再进行修改,编译所有项,编译后出现错误(5个 成功,4个失败),编译好几次都这样,先忽略它,进入DEBUG目录,找到libprotoc.lib和libprotobuf.lib就可以进入下一步了
3.编写.proto文件,生成.cc和.h文件
在一目录下新建person.proto文件,编写如下信息
把.proto文件编译器路径配置在环境变量中,解压protoc-2.4.1-win32.zip,把路径写入环境变量
使用命令提示符,进入.proto文件所在目录下,运行protoc --cpp_out=. person.proto
在当前目录下就会生成一个.cc和.h文件
4.测试protobuf是否可用
新建工程,引入头文件和.lib文件
把刚生成的.cc和.h文件引入工程中
编写代码
运行
成功
三、gtest测试protobuf
新建工程,引入头文件和lib文件
把gtestd.lib放入工程目录下
引入.proto生成的文件
编写代码
运行
成功
- gtest + protoBuf vs2010 win32 环境搭建(解决lib包冲突问题)
- protobuf windows java 环境搭建(编译出protobuf需要的jar包,解决编译时OutOfMemory的问题)
- 解决包冲突问题
- 解决包冲突问题
- 搭建gtest环境
- gtest开发环境搭建
- 解决pom包冲突问题
- 解决jar包冲突问题
- vs2010解决libBox2D.lib启动问题
- VS中解决LIBCMTD.lib和uafxcwd.lib冲突(uafxcw.lib LIBCMT.lib冲突)
- VS中解决LIBCMTD.lib和uafxcwd.lib冲突(uafxcw.lib LIBCMT.lib冲突)
- SSH2环境搭建的asm和cglib包冲突的解决
- SSH2环境搭建的asm和cglib包冲突的解决
- 使用vs2010和masm32搭建win32汇编语言编程编译环境
- Ubuntu下搭建gtest环境
- 搭建gtest测试环境 脚本
- Android中解决包冲突的问题(简单暴力)
- Protobuf开发环境搭建
- 修改桌面、我的文档等的路径
- osx程序自启动
- FreeNAS的优点和不足
- linux查找技巧: find grep xargs
- 我的第一个android程序 HelloWorld
- gtest + protoBuf vs2010 win32 环境搭建(解决lib包冲突问题)
- 2012暑假计划
- XSLT(3) content outputing elements
- 新的旅程
- Android入门:发送HTTP的GET和POST请求
- 从第一个字符串中删除第二个字符串中所有的字符
- C语言面试题——指针运算
- String.Join的一个小用法
- taskAffinity属性