我是靠谱客的博主 甜美大米,最近开发中收集的这篇文章主要介绍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.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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部