ubuntu 安装protobuf

apt 安装

sudo apt install protobuf-compiler

编译安装

-- 方式1

资料链接:ubuntu环境 安装ncnn_ubuntu ncnn_jbyyy、的博客-CSDN博客

git clone https://github.com/google/protobuf.git

cd protobuf

git submodule update --init --recursive

./autogen.sh

./configure

make

make check

sudo make install

sudo ldconfig # refresh shared library cache.

查看protobuf版本自动检测

protoc --version


ps1: 上面git clone的方式可以直接下安装包即可,如方式2(这两种方式其实是一样的,仅是下载方式和一点环境配置不一样(环境配置按需要来,其实不用专门配置))

ps2: 这里make check 时可能会报错(如下),但这个问题是可以忽略的。。。

-- 方式2

Ubuntn下安装protobuf和使用详解_小小码农Come on的博客-CSDN博客

① 下载protobuf

shell 复制代码
sudo wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-all-3.19.4.tar.gz

② 解压protobuf-all-3.19.4.tar.gz

tar -zxvf protobuf-all-3.19.4.tar.gz

③ 编译安装

shell 复制代码
cd protobuf-3.19.4
sudo ./autogen.sh
sudo ./configure --prefix=$INSTALL_DIR  #--prefix指定安装目录,一般不需要
sudo make
sudo make check
sudo make install
复制代码
PS:若不指定--prefix, 默认是安装在/usr/local/bin、/usr/local/lib和/usr/local/include/google/protobuf 中的。

ps2: 若未指定--prefix后,不想配置环境变量,使用时可能会报 找不到 libprotoc.so.30 和 libprotobuf.so.30,需要将其映射到/usr/lib/x86_64-linux-gnu才行,如下:

ln -sf /usr/local/lib/libprotoc.so.30 /usr/lib/x86_64-linux-gnu/libprotoc.so.30

ln -sf /usr/local/lib/libprotobuf.so.30 /usr/lib/x86_64-linux-gnu/libprotobuf.so.30

④ 配置环境变量和动态连接库

  • 更改环境变量:

    vim /etc/profile

    在文件的末尾添加如下的两行: (把bin路径和pkgconfig路径添加到系统PATH)

    export PATH=$PATH:/home/fwq/softs/protobuf/bin (安装路径)

    export PKG_CONFIG_PATH=$INSTALL_DIR/lib/pkgconfig/

  • 配置动态链接库

    vim /etc/ld.so.conf

    在文件中添加/usr/local/protobuf/lib(注意: 在新行处添加)

    $INSTALL_DIR/lib

更改完成之后ldconfig即可

⑤ 查看是否安装成功

protoc --version

相关推荐
真的想上岸啊24 分钟前
4、修改开发板内核启动日志级别
linux
RisunJan28 分钟前
Linux命令-kill(向进程发送信号的核心命令)
linux·运维·服务器
小康小小涵31 分钟前
ROS2-Humble功能包插件推荐
ubuntu
物理与数学41 分钟前
linux内核 页缓存的脏页管理
linux·linux内核
范纹杉想快点毕业1 小时前
嵌入式工程师一年制深度进阶学习计划(纯技术深耕版)
linux·运维·服务器·c语言·数据库·算法
物理与数学1 小时前
Linux 内核 vm_area_struct与vm_struct
linux·linux内核
txinyu的博客1 小时前
sprintf & snprintf
linux·运维·算法
EverydayJoy^v^2 小时前
RH124简单知识点——第2章——调度未来任务
linux·运维
顶点多余2 小时前
静态链接 vs 动态链接,静态库 vs 动态库
linux·c++·算法
有梦想有行动2 小时前
ClickHouse的Partition和Part概念
linux·数据库·clickhouse