Ubuntu 18.04 安装protobuf --- version 3.20.3

我尝试查找过很多资料,试图安装protobuf(V23.4)的最新版本,但是我都失败了。

  • 使用apt-get安装失败----cmake无法查找到
  • 使用google 的 bazel 编译器安装,可以成功安装protoc编译器,但是没有安装相关的怕protobuf的头文件,静态库都没有
  • 使用make安装,需要的依赖环境出现很大的问题,总是缺少依赖

最后我放弃了 安装 21版本以后的protobuf,我选择可以自动配置的版本---安装了 3.20.3版本,

安装步骤 

下载源码  地址如下:https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.20.3.tar.gz到你放置安装报的目录下:

cd 你的安装包路径
tar -zvxf 你的安装包
cd 进入解压路径中

提前准备安装所需要的工具

sudo apt-get install autoconf automake libtool

先进行自动配置,然后当前路径下会生成一个configure文件,指定安装路径

./autogen.sh
./configure --prefix=/usr/local

执行make构建

make -j4
sudo make install

 安装完成以后 你可以进入 /usr/local/lib/   /usr/local/bin/   /usr/local/include/  中 查看安装的内容

一个简单的命令如下:

ls -l /usr/lib/libproto*

检查 protoc 编译器的位置和版本

protoc --verison

which protoc

另外需要配置相关路径

sudo vim /etc/profile

然后在文件末尾插入

#执行程序搜索路径
export PATH=$PATH:/usr/local/bin
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/include
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

测试代码

新建一个project文件夹,并进入

mkdir project
cd project

新建 CMakeLists.txt 

vim CMakeLists.txt

插入代码

cmake_minimum_required(VERSION 3.5)
project(protobuf_test)

# 查找 Protobuf 库和头文件
find_package(Protobuf REQUIRED)

# 添加可执行文件
add_executable(protobuf_test main.cpp)

# 添加 Protobuf 头文件路径
target_include_directories(protobuf_test PUBLIC ${PROTOBUF_INCLUDE_DIR})

# 链接 Protobuf 库
target_link_libraries(protobuf_test ${PROTOBUF_LIBRARY})

message(STATUS "Protobuf include directories:")
foreach(dir ${PROTOBUF_INCLUDE_DIRS})
    message(STATUS "  ${dir}")
endforeach()

新建一个mian.cpp 

vim main.cpp

插入代码

#include <iostream>
#include <google/protobuf/message.h> // 简单测试 看能不能链接

int main() {
    std::cout << "Hello, Protobuf!" << std::endl;
    return 0;
}

 然后进行cmake编译和测试

// 在 project 路径下
mkdir bulid
cd bulid
// 执行 
cmake ..
// cmake 构造完成 执行 make
// 观察输出
// Found Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found version "3.20.3")

make
// 查看可执行文件protobuf_test 执行
./protobuf_test

得到输出则编译完成,可以实现找到,编译都没问题,整体安装成功了

Hello, Protobuf!

特别感谢感谢这个博主的分享,参考链接:https://www.cnblogs.com/TaXueWuYun/p/17322623.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值