【ProtoBuf】2.环境配置

v2-51ee98b05ce2ada206b744b6ff86cbd1_r
————————————每一个不曾起舞的日子都是对生命的辜负。

PS: 安装中途出现很多error,可能是轻量级云服务器性能不够,此外还有中间的一些配置错误问题,最终采用了虚拟机,解决问题的方案在解决专栏中

一. 安装Protofbuf-Win

下载地址:Release Protocol Buffers v21.11 · protocolbuffers/protobuf (github.com)

image-20230520170513411

根据自己所需的版本安装即可,我使用的Win64,因此安装的是红框的版本。

二. 配置环境变量

  1. 下载完之后将压缩包解压在某一个位置,打开解压后的文件夹:

image-20230520170837110

  1. 进入bin目录,将其中的地址复制下来

image-20230520170922805

  1. 搜索:“编辑系统环境变量” 并进入

image-20230520171017675

点击:image-20230520171102815

接下来:image-20230520171201632

image-20230520171334285

三.验证是否添加成功

  1. 打开终端:快捷键(Win + R), 输入cmd进入终端:

image-20230520171448625

  1. 点击确定,进入终端后,输入:protoc --version

  2. 若出现下面结果,表示配置成功:

image-20230520171607866


四. Linux下Protobuf安装包的安装

1. 下载ProtoBuf

下载ProtoBuf前⼀定要安装依赖库:autoconf automake libtool curl make g++ unzip
如未安装,安装命令如下:

Ubuntu用户选择:

sudo apt-get install autoconf automake libtool curl make g++ unzip -y

Centos用户选择:

sudo yum install autoconf automake libtool curl make gcc_c++ unzip

上面的下载完之后,继续接下来的操作

ProtoBuf下载地址21.11路径:Release Protocol Buffers v21.11 · protocolbuffers/protobuf (github.com)

如果是C++版本,就下载下面的文件:image-20230520172749489

如果想在各种语言都能使用(如Java、C++、php等),就下载第二个文件:image-20230520172855274

为了更好的兼容,我们选择下载第二个文件,通过右键复制链接,在xshell中输入:wget,并将刚才的链接粘贴到xshell中:image-20230520173113338

实际上就是将压缩包以及里面的代码下载到Linux环境。(下载需要一些时间。)

image-20230520173658847

下载完成。

2. 解压压缩包

命令:unzip protobuf-all-21.11.zip

image-20230520173838115

解压后的这个目录中就是源码内容。

image-20230520173941510

通过里面的文件就可以将程序真正的安装了。

3. 安装ProtoBuf

# 第⼀步执⾏autogen.sh,但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。
./autogen.sh
# 第⼆步执⾏configure,有两种执⾏⽅式,任选其⼀即可,如下:
# 1、protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散的
./configure
# 2、修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf
  1. 输入./autogen.sh

image-20230520174227949

稍微等一等~

image-20230520174301153

完成。

  1. 输入:./configure --prefix=/usr/local/protobuf

再依次执⾏

make // 执⾏15分钟左右
make check // 执⾏15分钟左右
sudo make install
  1. 输入:make

(上一步操作生成了makefile,接下来就可以进行make,这一步消耗时间较长,大概15分钟)

image-20230520174642035

long time …

image-20230520180036526

  1. 输入make check

(这个过程是检测,是可有可无的)

执⾏make check 后,出现以下内容就可以执⾏ sudo make install

image-20230520180237842

如果其中的test出现FAIL,即如下情况:

image-20230520210452117

这个问题是test的模块里面有非常多的测试用例,有些测试用例对服务器环境要求特别严格,需要增大下swap分区,但他是不影响我们后续正常使用的,可以跳过这一步。如果后续出现头文件报错,那是编译器版本比较低,因此我们需要将改g++升级到8,而我们普通安装的方式最高就是4.8.5因此,需要其他的方式配置。

  1. 输入sudo make install

image-20230521142706292

完成。

4. 最后添加内容

到此,需要你回忆⼀下在执⾏configure时,如果当时选择了第⼀种执⾏⽅式,也就是./configure ,那么到这就可以正常使⽤protobuf了。如果选择了第⼆种执⾏⽅式,即修改了安装⽬录,那么还需要在/etc/profile中添加⼀些内容:

sudo vim /etc/profile
# 添加内容如下:
#(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径
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/

最后⼀步,重新执⾏/etc/profile⽂件:

source /etc/profile

5.检查是否安装成功

输⼊ protoc --version 查看版本,有显⽰说明安装成功。

cfy@139-159-150-152:~/install/protobuf-21.11$ protoc --version
libprotoc 3.21.11

五. 升级g++到8版本

上述提到,g++不提高到最新版本在后续操作会头文件报错,因此下面我们配置g++编译器

【解决】升级g++到8版本_每天都要进步呀~的博客-CSDN博客

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
配置protobuf环境的步骤如下: 1. 首先,建议将protobuf安装到/usr/local目录下。可以执行以下命令进行配置:configure --prefix=/usr/local/protobuf。 2. 然后,编译和安装protobuf库文件。可以使用以下命令:make && make install。这将编译protobuf并将其安装到指定的目录。 3. 在编译和链接你的代码时,需要指定头文件和库文件的位置。对于头文件的位置,可以使用-I选项指定路径,例如:-I /usr/local/protobuf/include。对于库文件的位置,可以使用-L选项指定路径,例如:-L /usr/local/protobuf/lib。 4. 在你的代码中,需要包含protobuf的头文件。对于生成的example.pb.h文件,它包含了对ptype::person的定义。你可以在代码中包含该头文件,以便使用相关的protobuf对象和函数。 5. 如果需要将protobuf对象序列化到文件流中,可以使用SerializeToOstream函数。该函数将对象序列化后写入fstream流中。 总结一下,配置protobuf环境包括将protobuf安装到/usr/local目录下,编译和安装protobuf库文件,指定头文件和库文件的位置,在代码中包含protobuf的头文件,使用相关的protobuf对象和函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [protobuf配置与使用](https://blog.csdn.net/djpmsoa95092/article/details/101763281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天都要进步呀~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值