Mac下ProtocolBuffer运行环境配置及编译测试


1、安装辅助工具
sudo apt-get install autoconf automake libtool curl make g++ unzip

2、wget https://github.com/protocolbuffers/protobuf/releases/download/v3.10.0/protobuf-all-3.10.0.zip

3、uzip -o -d ./ protobuf-all-3.10.0.zip

4、cd到解压目录,执行以下命令安装
(默认是安装在 /usr/local,也可以通过添加--prefix==PATH参数指定安装目录)
$./configure --prefix=/usr/local/protobuf
$ make
$ make check
$ make install

5、在/etc/profile中添加如下
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

6、reboot, 使用echo $LIBRARY_PATH验证是否成功

查看是否安装成功
xxx@madeMacBook-Pro desktop % protoc --version
libprotoc 3.11.3

7、生成后缀为proto的文件
1.  创建文件person.proto
xxx@madeMacBook-Pro desktop % touch person.proto
xxx@madeMacBook-Pro desktop % vim person.proto 

syntax = "proto3";
  
message Person{
        string name = 1;
        int32 age = 2;
}

message Book{
        string bookName = 1;
        double price = 2;

}

8、转化成objc和c++文件
终端输入: $ protoc --proto_path=A --objc_out=B person.proto
其中--proto_path=后跟A是需要处理的proto文件所在的文件夹,--objc_out=指明生成的是Objective-C代码以及目标文件存放路径,B是目标文件存放路径,person.proto是需要处理的文件。

所以下面指令生成:Person.pbobjc.h    Person.pbobjc.m
xxx@madeMacBook-Pro desktop % protoc --proto_path=A --objc_out=B person.proto

所以下面指令生成:person.pb.h    person.pb.cc
xxx@madeMacBook-Pro desktop % protoc --proto_path=A --cpp_out=B person.proto


XCode项目中使用:利用CocoasPod,生成xxx.xcworkspace工程;将Person.pbobjc.h    Person.pbobjc.m引入工程直接使用;

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'

target 'ProtocoBuffer' do
use_frameworks!

    pod 'Protobuf'
  
end


Linux项目中使用:

xxx@xxx:~/share/ProtocoClientOfChat$ g++ chat_message.cpp JsonObject.cpp main.cpp Protocal.pb.cc SerilizationObject.cpp structHeader.cpp -o 
client -lboost_system -lboost_serialization -lpthread -lprotobuf 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值