linux下编译安装protobuf

这篇具有很好参考价值的文章主要介绍了linux下编译安装protobuf。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


linux下编译安装protobuf

1.下载protobuf源码

protobuf源码网址:

https://github.com/google/protobuf/releases

在官网上选择对应的版本下载,压缩包下载可以在线下载之后本地安装,或者在终端通过wget指令下载

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protobuf-all-3.13.0.tar.gz

注意:在linux下,可以在home目录下单独建一个文件夹,用来保存各种源码,将编译好的内容放到 /usr/local/ 下面

linux源码编译安装过程一般为配置(configure)、编译(make)、安装(install)三部分,对下载的压缩包,要进行解压缩得到文件夹,配置安装路径后,借助make工具编译并安装。

2.解压缩

tar -zxvf protobuf-all-3.13.0.tar.gz

执行该命令,在压缩包同级目录下会看到解压缩得到的文件夹,这里我对文件夹利用mv命令进行重命名

mv protobuf-3.20.3 protobuf

结果如下图所示
查看protobuf版本,rpc,linux,c++,rpc

3.配置configure

得到解压缩后的源码后,就要对安装路径进行配置,这里配置过程利用可执行脚本configure来完成,可执行脚本configure就在protobuf文件夹中。
查看protobuf版本,rpc,linux,c++,rpc
通过指令./configure -help可查看配置选项,这里主要用--prefix指定安装路径。

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

如果不指定安装路径,源码会被编译安装在默认路径下

可执行文件:/usr/local/bin
库文件:/usr/local/lib
配置文件:/usr/local/etc
其他资源文件:/usr/local/share

通过上面指令指定安装路径后,在/usr/local/protobuf下会看到bin、include、lib三个文件夹,分别放置可执行文件与库文件
查看protobuf版本,rpc,linux,c++,rpc

4.编译并安装

依次执行以下命令即可,执行make命令,运行makefile文件,makefile文件指令编译与链接规则,之后执行make install命令,该命令会将protobuf安装到指定路径下。ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。安装完成后执行ldconfig命令。

make
make install
ldconfig

注意,这段时间需要编译源码,等待时间较长。

5.设置环境变量

在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,其中环境变量PATH指明命令行解释器搜索用户执行命令的路径,为了保证在系统任何目录下都能使用protoc命令,需要在配置文件中添加相关变量 包括动态库搜索路径、静态库搜索路径、执行程序搜索路径等,添加过程很简单,利用vi 指令打开/etc/profile文件,在文件末尾添加下面的内容,之后更新环境变量。

#protobuf config

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

vi /etc/profile
source /etc/profile

最后,执行protoc --version查看protobuf安装的版本,用来检验是否安装成功。

protoc --verison

查看protobuf版本,rpc,linux,c++,rpc

linux下源码编译安装方法

方法一

注意:使用方法的前提是已经下载好要安装软件对应源码的压缩包

./configure
make
make install

方法二

使用cmake编译安装,进入CMakeList.txt同级目录,建一个build文件夹,之后文章来源地址https://www.toymoban.com/news/detail-600400.html

cmake ..
make
make install

到了这里,关于linux下编译安装protobuf的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【RPC】—Protobuf入门

    ⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ Spring专栏👉https://blog.csdn.net/weixin_53580595/category_12279588.html SpringMVC专栏👉https://blog.csdn.net/weixin_53580595/category_12281721.html Mybatis专栏👉https://blog.csdn.net/weixin_53580595/catego

    2024年02月13日
    浏览(49)
  • 在protobuf里定义描述rpc方法的类型

    service  UserServiceRpc     //在test.proto中定义 {     rpc Login(LoginRequest)returns(LoginResponse);     rpc GetFriendLists(GetFriendListRequest)returns(GetFriendListResponse); }   test.proto文件生成test.pb.cc      protoc  test.proto  --cpp_out=./    将生成的文件放到 ./ 目录下,截取一部分如下 调用关系如图所示

    2024年04月25日
    浏览(49)
  • rpc、gRPC快速入门,python调用,protobuf协议

    远程过程调用协议RPC (Remote Procedure Call Protocol) RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据 举例:在 a服务内

    2024年02月13日
    浏览(52)
  • RPC分布式网络通信框架(一)—— protobuf的使用

    常见序列化和反序列化协议有XML、JSON、protobuf,相比于其他protobuf更有优势: 1、protobuf是二进制存储的,xml和json都是文本存储的。故protobuf占用带宽较低 2、protobuf不需要存储额外的信息。 json如何存储数据?键值对。例:Name:”zhang san”, pwd: “12345”。 protobuf存储数据的方式

    2024年02月16日
    浏览(52)
  • rpc入门笔记 0x02 protobuf的杂七杂八

    安装grpcio和grpcio-tools库 生成proto的python文件 python -m grpc_tools.protoc :使用grpc_tools包中的protoc命令进行代码生成。 --python_out=. :指定生成的Python代码的存放位置为当前目录。 --grpc_python_out=. :指定生成的gRPC代码的存放位置为当前目录。 -I. :指定搜索.proto文件的路径为当前目录

    2024年02月08日
    浏览(58)
  • PG系列4:linux下编译安装PG15

    PG的编译安装比MySQL快很多 –注:请根据自己的实际情况选择需要安装的模块 编译时指定wal_compression支持的压缩外部库 配置标志 –with-lz4 和 –with-zstd 分别用于 lz4 和 zstd。 如果数据库工作负载受 CPU 限制,则可以选择 Lz4 压缩,因为它对 CPU 的影响很小。它可以提供非常接近

    2024年02月11日
    浏览(49)
  • ubuntu上安装boost库为SOMEIP的X86和ARM下编译做准备(编译两种版本)

    Boost库是C++拓展库,是SOMEIP源码编译所必需的库。编译 Boost 库时,需要根据不同的架构,选择不同的工具链和参数 首先,Boost源码下载,Boost官网:https://www.boost.org 基于此处我编译的SOMEIP源码版本,需要安装1.74版本的Boost库,下载链接:https://boostorg.jfrog.io/artifactory/main/relea

    2024年02月10日
    浏览(39)
  • 【RPC 协议】序列化与反序列化 | lua-cjson | lua-protobuf

    在分布式计算,远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关

    2024年02月10日
    浏览(37)
  • Ubuntu查看ros版本-linux查看ros版本

    使用ros带的rosversion命令即可查看自己的ros版本:

    2024年03月16日
    浏览(63)
  • 如何在Windows、Mac和Linux操作系统上安装Protocol Buffers(protobuf)编译器

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月11日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包