win编译安装 protobuf3.2

安装目的

在windows中安装 protobuf cpp版本

安装说明

本机环境如下
- win10 x64系统
- MS VS2010
- protobuf3.2 源码下载地址
- CMake 3.8安装包 下载地址

编译环境设置

开始菜单中找到VS目录, 运行Visual Studio x64 Win64 命令提示(2010) 命令窗口会出现

 Setting environment for using Microsoft Visual Studio 2010 x64 tools.

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>

cd到protobuf的同级目录 D:\protobuf_install(源码已经解压在 D:\protobuf_install\protobuf3.2)

cd /d D:\protobuf_install\ & mkdir install

如果没有设置cmake环境变量, 需要设置一下.(CMAKEBIN_PATH为CMake的bin目录)

set PATH=%PATH%;CMAKEBIN_PATH

CMake配置

此处仅仅说明使用CMake配置makefile和vs的编译环境
在创建临时构建目录

D:\protobuf_install\protobuf3.2\cmake>mkdir build & cd build
D:\protobuf_install\protobuf3.2\cmake\build>

生成Makefile
每个Makefile文件仅能构建特定项目的一个配置,所以我们需要给每种配置分别创建不同的目录

  • 使用Rekease配置,生成nmake MakeFile文件到release目录
D:\protobuf_install\protobuf3.2\cmake\build>mkdir release & cd release
D:\protobuf_install\protobuf3.2\cmake\release>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
 ../..
  • 使用Debug配置,生成nmake MakeFile文件到debug目录
D:\protobuf_install\protobuf3.2\cmake\build>mkdir debug & cd debug D:\protobuf_install\protobuf3.2\cmake\debug>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Debug ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
 ../..

生成VS 2010解决方案与项目

 D:\protobuf_install\protobuf3.2\cmake\build>mkdir solution & cd solution
 D:\protobuf_install\protobuf3.2\cmake\build\solution>cmake -G "Visual Studio 11 2012 Win64" ^
 -DCMAKE_INSTALL_PREFIX=../../../../install ^
 ../..

以上命令将会在当前工作目录下生成protobuf.sln解决方案.

编译

  • 使用nmake编译
    前面我们使用CMake构建了nmake MakeFile文件, 所以只需要在有MakeFile文件的目录执行nmake即可,如下命令分别生成debug与release版本

 D:\protobuf_install\protobuf3.2\cmake\release>nmake
or

 D:\protobuf_install\protobuf3.2\cmake\debug>nmake 
  • 使用VisualStudio编译
    在solution目录中找到sln文件,用vs打开生成即可

执行测试

可以使用nmake check命令在生成的目录下执行单元测试


 D:\protobuf_install\protobuf3.2\cmake\release>nmake check
or

 D:\protobuf_install\protobuf3.2\cmake\debug>nmake  check

可看到类似如下输出


Microsoft (R) 程序维护实用工具 10.00.30319.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

[  0%] Building CXX object CMakeFiles/js_embed.dir/D_/protobuf_install/protobuf3.2/src/google/protobuf/compiler/js/embed.cc.obj
embed.cc
[  0%] Linking CXX executable js_embed.exe
[  0%] Built target js_embed
Scanning dependencies of target libprotobuf

安装

在nmake Makefile目录下执行nmake install 是个不错的选择.(将会在之前mkdir的install目录创建lib bin include目录)
当然也可以使用vs生成后的文件安装

DLLs vs. static linking

官方的文档推荐使用静态链接库, 而且以上的生成默认也是静态链接库.但在实际使用的时候可能会有动态库的需求,而且大多数win项目中,可能会用到MSVC的运行库 . 所以如果有需要, 可以从生成的VS项目自行将运行库从/MT 切换到/MD . 或使用CMake构建项目时使用 -Dprotobuf_BUILD_SHARED_LIBS=ON 的选项

参考文章
https://github.com/google/protobuf/blob/master/cmake/README.md

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值