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生成的文件

编写代码

运行


成功