linux怎么安装protobuf-master

linux怎么安装protobuf-master,第1张

默认安装步骤(需root权限):

$wget https://github.com/google/protobuf/archive/v2.6.1.zip

$unzip protobuf-2.6.1.zip

$cd protobuf-2.6.1

下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件

$ ./configure

$ make

$ make check

$ make install

我使用的是centos系统

usr/local/bin

usr/local/lib,

usr/local/include

是也系统默认路径之一,所以到这一步就可以使用protobuf了

$ protoc -I=./ --cpp_out=./ test.proto

到你的test.proto文件所在目录使用命令protoc -I=./ --cpp_out=./ 生成C++版本的协议文件

一切OK的话,你回在当前目录看到.h和.cc文件

123456789101112131415161718192021

修改安装路径(非root用户需要修改安装路径):

protobuf默认安装在 /usr/local 目录

你可以修改安装目录通过 ./configure --prefix=命令

虽然我是root用户但觉得默认安装过于分散,所以统一安装在/usr/local/protobuf下

$./configure --prefix=/usr/local/protobuf

$ make

$ make check

$ make install

到此步还没有安装完毕,在/etc/profile 或者用户目录 ~/.bash_profile

添加下面内容

####### add protobuf lib path ########

#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径

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/

######################################

好了,goog luck

谷歌在中国大陆没有授权使用,港澳地区应该可以用,大陆一般用的只有百度,搜狗等常见搜索引擎,因为谷歌面向范围极广,里面有很多大陆禁止的内容,各国法律不一样……所以你下载了谷歌,没有启动属于正常现象

下面描述了在 GNU/Linux x86_64(centeros)下安装 protocol buffer,支持 C 和 C++ 。1. google protocol buffer 下载下载 google protocol buffer,使用版本 2.5的,主页 http://code.google.com/p/protobuf/下载地址: http://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.5.0.tar.gz&can=2&q=2. protocol buffer C 下载使用最新的,并有维护的 0.16 版本下载主页 http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns下载地址 http://code.google.com/p/protobuf-c/下面地址是有维护的 0.16 版本 https://github.com/protobuf-c/protobuf-c3. 安装 google protocol buffer一般文件名称是 protobuf-2.5.0.tar执行命令解压tar -xvzf protobuf-2.5.0.tar得到目录 protobuf-2.5.0,下面是我的工作目录结构,pb 目录是全部有关 protocol buffer 的支持/home/huangzhihui/pb/protobuf-2.5.0执行 configure,构造 makefile 文件./configure --help看看携带那些参数,我们指定下面的参数,编译为32 位版本./configure --prefix=/usr/local/ CFLAGS=-m32 CXXFLAGS=-m32执行 make,编译完成 执行 make install,编译完成后安装完成4. 安装 protobuf-c如果下载的是 protobuf-c-master.zip,windows 上解压后拷贝到 linux 上。同样建立 /home/huangzhihui/pb/protobuf-c-master目录因为 protobuf 有些用于 C++ 支持 google rpc 和测试的功能,我们不编译也不安装它,所有我们这次修改一下 Makefile.am 文件。统一给 AM_CPPFLAGS 加上 -m32 参数,编译为 32 位的程序统一给 AM_CFLAGS 加上 -m32 参数统一给 AM_LDFLAGS 加上 -m32 -L/usr/local/lib/ 参数,指定链接库注释掉有关 t/generated-code2 目录的所有文件,不参与编译和安装执行 configure,构造 makefile 文件./configure --help看看携带那些参数,我们指定下面的参数,编译为32 位版本./configure --prefix=/usr/local/ CFLAGS=-m32 CXXFLAGS=-m32 protobuf_CFLAGS=-I/usr/local/include/ protobuf_LIBS=-L/usr/local/lib/./configure --prefix=/usr/local/protocol-c-1.0-m32 CFLAGS=-m32 CPPFLAGS=-m32 CXXFLAGS=-m32 --datadir=/usr/local/protocol-c-1.0-m32/datadir protobuf_CFLAGS=-I/usr/local/protocol-2.5-m32/include protobuf_LIBS=-L/usr/local/protocol-2.5-m32/lib PROTOC=/usr/local/protocol-2.5-m32/bin/protoc LDFLAGS=-L/usr/local/protocol-2.5-m32/lib LIBS=-lprotobuf使用这个语句配置,可以不修改配置文件了。执行 make,编译完成 执行 make install,编译完成后安装完成5. 测试 protobuf-c进入 /home/huangzhihui/pb/protobuf-c-master/t(相对路径t)执行命令,根据协议描述文件,生成协议源代码/usr/local/bin/protoc-c test.proto --c_out=./或者(根据工具protoc-c目录来)/usr/local/protocol-c-1.0-m32/bin/protoc-c test.proto --c_out=./静态链接 libprotobuf-c.agcc -m32 generated-code/test-generated-code.c test.pb-c.c -I../ -o test /usr/local/lib/libprotobuf-c.a运行 test,输出 test succeeded.OK./test动态链接 protobuf-cgcc -m32 generated-code/test-generated-code.c test.pb-c.c -I../ -o test -L/usr/local/lib/ -lprotobuf-c6. 查询 test-generated-code.c/home/huangzhihui/pb/protobuf-c-master/t/generated-code/test-generated-code.c通过看这个代码,我们大致能明白 C 使用 protocol buffer 的流程。7. test-generated-code2.c,验证平台是否完整支持功能构造测试文件 test-full.pb-c.c/usr/local/protocol-c-1.0-m32/bin/protoc-c test-full.proto --c_out=./gcc -m32 test-generated-code2.c ../test-full.pb-c.c -I../ -I../../ -I/usr/local/protocol-c-1.0-m32/include/ -I/usr/local/protocol-2.5-m32/include/ -o test -L/usr/local/protocol-c-1.0-m32/lib/ -lprotobuf-c./test8. cxx-generate-packed-data.cc,验证平台是否完整支持功能export LD_LIBRARY_PATH="/usr/local/protocol-2.5-m32/lib/:/usr/local/protocol-c-1.0-m32/lib/"构造测试文件 test-full.pb.cc/usr/local/protocol-2.5-m32/bin/protoc test-full.proto --cpp_out=./gcc -m32 cxx-generate-packed-data.cc ../test-full.pb.cc -I../ -I../../ -I/usr/local/protocol-c-1.0-m32/include/ -I/usr/local/protocol-2.5-m32/include/ -o test -L/usr/local/protocol-c-1.0-m32/lib/ -lprotobuf-c./test


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7086695.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存