概述
安装目的
在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.0VC>
cd到protobuf的同级目录 D:protobuf_install(源码已经解压在 D:protobuf_installprotobuf3.2)
cd /d D:protobuf_install & mkdir install
如果没有设置cmake环境变量, 需要设置一下.(CMAKEBIN_PATH为CMake的bin目录)
set PATH=%PATH%;CMAKEBIN_PATH
CMake配置
此处仅仅说明使用CMake配置makefile和vs的编译环境
在创建临时构建目录
D:protobuf_installprotobuf3.2cmake>mkdir build & cd build
D:protobuf_installprotobuf3.2cmakebuild>
生成Makefile
每个Makefile文件仅能构建特定项目的一个配置,所以我们需要给每种配置分别创建不同的目录
- 使用Rekease配置,生成nmake MakeFile文件到release目录
D:protobuf_installprotobuf3.2cmakebuild>mkdir release & cd release
D:protobuf_installprotobuf3.2cmakerelease>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
- 使用Debug配置,生成nmake MakeFile文件到debug目录
D:protobuf_installprotobuf3.2cmakebuild>mkdir debug & cd debug D:protobuf_installprotobuf3.2cmakedebug>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Debug ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
生成VS 2010解决方案与项目
D:protobuf_installprotobuf3.2cmakebuild>mkdir solution & cd solution
D:protobuf_installprotobuf3.2cmakebuildsolution>cmake -G "Visual Studio 11 2012 Win64" ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
以上命令将会在当前工作目录下生成protobuf.sln解决方案.
编译
- 使用nmake编译
前面我们使用CMake构建了nmake MakeFile文件, 所以只需要在有MakeFile文件的目录执行nmake即可,如下命令分别生成debug与release版本
D:protobuf_installprotobuf3.2cmakerelease>nmake
or
D:protobuf_installprotobuf3.2cmakedebug>nmake
- 使用VisualStudio编译
在solution目录中找到sln文件,用vs打开生成即可
执行测试
可以使用nmake check命令在生成的目录下执行单元测试
D:protobuf_installprotobuf3.2cmakerelease>nmake check
or
D:protobuf_installprotobuf3.2cmakedebug>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
最后
以上就是甜美大米为你收集整理的win编译安装 protobuf3.2的全部内容,希望文章能够帮你解决win编译安装 protobuf3.2所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复