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

相关推荐
gx23481 小时前
k8spod管理
linux·容器·kubernetes
susplus3 小时前
【linux应用软件编程】进程间的通信方式1【管道&IPC】
linux·进程通信·管道·ipc
AlfredZhao6 小时前
用 crontab 给 LLM 使用量装上“监控眼”
linux
刃神太酷啦9 小时前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb
赵文宇(温玉)9 小时前
OpenEuler24.03 SP4 系统安装(欧拉/麒麟V10)
linux·openeuler·欧拉
Brilliantwxx11 小时前
【Linux】 进程(7)深度剖析 进程内核O(1)调度队列 + 饥饿问题
linux·运维·服务器
刚入门的大一新生11 小时前
Linux-命令行参数和环境变量
linux·运维·服务器
Elasticsearch11 小时前
将 1,100 个文件迁移到 Redux Toolkit v2,同时避免冻结 Kibana 单体仓库
elasticsearch
Elasticsearch12 小时前
从 582 毫秒的延迟峰值追踪到负责该服务的团队:使用 Kibana Discover
elasticsearch
我星期八休息12 小时前
Linux I/O多路转接—epoll
java·linux·运维·服务器·开发语言·jvm·算法