protobuf 测试 & Makefile example

很久没有写C++程序了,很多东西都忘了,几天试了一下protobuf的tutorial,顺便写了Makefile:

根据./proto/目录下的addressbook.proto( 内容请参考tutorial)生成.cc和.h文件,放到./cpp/proto/目录下

$ protoc -I=./proto/ --cpp_out=./cpp/proto/ ./proto/addressbook.proto

在 ./cpp/ 目录下

$ cd ./cpp

编写reader.cc 和 writer.cc( 内容请参考tutorial

编写Makefile文件,关于gcc编译过程和makefile中的特殊符号,请参考这里这里

$ cat Makefile
LIBS=-lprotobuf
CC=gcc
ARGS=-Wall -c

all:reader writer

reader:reader.o addressbook.pb.o
$(CC) $^ $(LIBS) -o $@
writer:writer.o addressbook.pb.o
$(CC) $^ $(LIBS) -o $@
reader.o:reader.cc proto/addressbook.pb.h
$(CC) $(ARGS) $*.cc -o $@
writer.o:writer.cc proto/addressbook.pb.h
$(CC) $(ARGS) $*.cc -o $@
addressbook.pb.o:proto/addressbook.pb.cc proto/addressbook.pb.h
$(CC) $(ARGS) proto/$*.cc -o $@
clean:
rm *.o -f
rm reader writer -f

生成reader和writer程序

$make

测试 writer和reader

$ ./writer address.txt
Enter person ID number: 01
Enter name: donal
Enter email address (blank for none): donal0412@gmail.com
Enter a phone number (or leave blank to finish): 88236017
Is this a mobile, home, or work phone? work
Enter a phone number (or leave blank to finish): 
$ ./reader address.txt 
Person ID: 1
  Name: donal
  E-mail address: donal0412@gmail.com
  Work phone #: 88236017

原文链接: https://www.cnblogs.com/Donal/archive/2012/03/08/2385145.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    protobuf 测试 & Makefile example

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/43706

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午8:20
下一篇 2023年2月8日 下午8:20

相关推荐