黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

protobuf安裝

系統(tǒng) 1957 0
1 在網(wǎng)站 http://code.google.com/p/protobuf/downloads/list上可以下載 Protobuf 的源代碼。然后解壓編譯安裝便可以使用它了。
安裝步驟如下所示:
?
也可在https://github.com/google/protobuf/releases/tag/v3.0.0-alpha-3 上面下載這個(gè),我是從上面的網(wǎng)站直接跳轉(zhuǎn)過(guò)來(lái)的找到的
?
提取 protobuf-3.0.0-alpha-3
?cd protobuf-3.0.0-alpha-3
sudo sh ./autogen.sh
?./configure --prefix=/usr/local/protobuf
?make?
?make check?
?make install?
?
?2 > sudo vim /etc/profile
?添加
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
保存執(zhí)行
source /etc/profile
?
同時(shí) 在~/.profile中添加上面兩行代碼,否則會(huì)出現(xiàn)登錄用戶找不到protoc命令
?
3 > 配置動(dòng)態(tài)鏈接庫(kù)路徑
sudo vim /etc/ld.so.conf
插入:
/usr/local/protobuf/lib
?
4 > su ?#root 權(quán)限
ldconfig
?

5> 寫消息文件:msg.proto

  1. package?lm;???
  2. message?helloworld???
  3. {???
  4. ????required?int32?????id?=?1;??//?ID?????
  5. ????required?string????str?=?2;??//?str????
  6. ????optional?int32?????opt?=?3;??//optional?field???
  7. }??
將消息文件msg.proto映射成cpp文件
protoc -I=. --cpp_out=. msg.proto
可以看到生成了
msg.pb.h 和msg.pb.cc
?
6> 寫序列化消息的進(jìn)程
write.cc
  1. #include?"msg.pb.h"??
  2. #include?<fstream>??
  3. #include?<iostream>??
  4. using?namespace?std;??
  5. ??
  6. int?main(void)???
  7. {???
  8. ??
  9. ????lm::helloworld?msg1;???
  10. ????msg1.set_id(101);???
  11. ????msg1.set_str("hello");???
  12. ????fstream?output("./log",?ios::out?|?ios::trunc?|?ios::binary);???
  13. ??
  14. ????if?(!msg1.SerializeToOstream(&output))?{???
  15. ????????cerr?<<?"Failed?to?write?msg."?<<?endl;???
  16. ????????return?-1;???
  17. ????}??????????
  18. ????return?0;???
  19. }??
編譯 write.cc?
?g++ ?msg.pb.cc write.cc -o write ?`pkg-config --cflags --libs protobuf` -lpthread
?
執(zhí)行write?
./write, 可以看到生成了log文件
?
7> 寫反序列化的進(jìn)程
reader.cc
  1. #include?"msg.pb.h"??
  2. #include?<fstream>??
  3. #include?<iostream>??
  4. using?namespace?std;??
  5. ??
  6. void?ListMsg(const?lm::helloworld?&?msg)?{????
  7. ????cout?<<?msg.id()?<<?endl;???
  8. ????cout?<<?msg.str()?<<?endl;???
  9. }???
  10. ??
  11. int?main(int?argc,?char*?argv[])?{???
  12. ??
  13. ????lm::helloworld?msg1;???
  14. ??
  15. ????{???
  16. ????????fstream?input("./log",?ios::in?|?ios::binary);???
  17. ????????if?(!msg1.ParseFromIstream(&input))?{???
  18. ????????????cerr?<<?"Failed?to?parse?address?book."?<<?endl;???
  19. ????????????return?-1;???
  20. ????????}?????????
  21. ????}???
  22. ??
  23. ????ListMsg(msg1);???
  24. }??
編譯:g++ ?msg.pb.cc reader.cc -o reader ?`pkg-config --cflags --libs protobuf` -lpthread
執(zhí)行./reader 輸出 :
101
hello

8> 寫Makefile文件

  1. all:?write?reader??
  2. ??
  3. clean:??
  4. ????rm?-f?write?reader?msg.*.cc?msg.*.h?*.o??log??
  5. ??
  6. proto_msg:??
  7. ????protoc?--cpp_out=.?msg.proto??
  8. ??
  9. ??
  10. write:?msg.pb.cc?write.cc??
  11. ????g++??msg.pb.cc?write.cc?-o?write??`pkg-config?--cflags?--libs?protobuf`??
  12. ??
  13. reader:?msg.pb.cc?reader.cc??
  14. ????g++??msg.pb.cc?reader.cc?-o?reader??`pkg-config?--cflags?--libs?protobuf`??

protobuf安裝


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論