由于在网上只能找到 可执行文件和源码,而没有相应的.lib或.a 于是我这里就自己搞一下了。
下载源码:点击打开链接
我是用的是cpp 即c++源码版本编译
首先我们先进入protobuf-3.1.0\cmake目录,查看README说明就知道如何编译windows版本了。
准备:
确保你的系统有CMake 点击官网下载 ,Visual Studio ,(Git是非必须的)。
开始:
通过开始菜单,打开“VS2015 x64 Native Tools Command Prompt” 我当前使用的是2015版本。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC> 切换到你的工作目录我是用命令:
E:
E:\> cd study\protobuf\protobuf-cpp-3.1.0
E:\study\protobuf\protobuf-cpp-3.1.0> mkdir install 创建一个存放build出来结果的目录
进入protobuf目录 进入cmake目录
E:\study\protobuf\protobuf-cpp-3.1.0\protobuf-3.1.0\cmake>mkdir build & cd build
E:\study\protobuf\protobuf-cpp-3.1.0\protobuf-3.1.0\cmake\build>mkdir release & cd release
接着使用命令:
cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
这是创建release版本同样返回 上一层目录 build
E:\study\protobuf\protobuf-cpp-3.1.0\protobuf-3.1.0\cmake\build>mkdir debug & cd debug
创建debug版本
cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Debug ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
接着在返回上一层目录 建立解决方案
E:\study\protobuf\protobuf-cpp-3.1.0\protobuf-3.1.0\cmake\build>mkdir solution & cd solution
cmake -G "Visual Studio 14 2015 Win64" ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
我是用的是 vs2015 这个根据你自己的版本修改就行了。
进入到solution目录你就会发现已经产生了一个 protobuf.sln 的工程文件,没错这个就是我们需要的工程
编译方式有两种:
1、 就是直接进入build\release目录使用命令 nmake 就开始编译了(debug版本同理)。
2、通过vs IDE打开刚才的工程文件,选择release或debug版本 开始编译就可以了。
编译完成后(其实这时候你进入release目录就可以看到已经编译出来了,)
就需要进行test测试了
看到pass 测试通过后
执行 nmake install安装(其实我的测试没有通过,错误是因为64编译出现问题,于是我是用sln工程文件在ide中编译)
完后可以看到 release版本有 libprotobuf.lib libprotoc.lib protoc.exe 文件
那么我们就可以写proto文件 通过 cmd终端执行
>protoc.exe --proto_path=./ --cpp_out=./output myMessage.proto
--proto_path= 指定proto文件目录
--cpp_out=指定输出cpp文件目录
myMessage.proto 为proto源文件名
注意我是用的3版本proto文件的书写需要加上 syntax="proto2"; 指定使用哪个版本
我的myMessage.proto 文件内容如下
syntax="proto2";
message LogonReqMessage {
required int64 acctID = 1;
required string passwd = 2;
}
加入使用proto3 required字段不再允许了
加入使用3可以按照以下写法
syntax="proto3";
message LogonReqMessage {
int64 acctID = 1;
string passwd = 2;
}
是不是简单多了,这个就是3的功能,至于3的变化有哪些请查看官方说明 https://github.com/google/protobuf/releases
还有为了方便我们最后自己写一个bat脚本, 当修改了proto后 直接点击执行bat文件就可以完事,不需要每次进入相应目录执行 proto.exe 命令那么麻烦。
贴出我编译的结果链接,大家可以前往下载:点击打开链接