搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
人工智能uu
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【产品经理修炼之道】- 垂直电商首页设计_产品经理怎么设计电商首页
2
C语言小项目源码大全(60套)
3
Hadoop_unauthorized-yarn_hadoop未授权访问
4
【翻译】 如何应对内核警告?
5
git merge三种参数精简解释(fast-forward、--no-ff、--squash)_git merge fast forward
6
如何用AI生成表情包_ai生成表情包的关键词
7
【神经网络】Transformer小结_transformer神经网络
8
API安全集成最佳实践:有效应对安全挑战
9
Stable Diffusion 的 `/sdapi/v1/img2img` 接口参数定义_sd api img2img 参数详解
10
【读书笔记】《淘宝技术这十年》_淘宝技术这十年 xmind
当前位置:
article
> 正文
linux下安装protobuf教程+示例(详细)
作者:人工智能uu | 2024-08-20 23:44:16
赞
踩
linux下安装protobuf教程+示例(详细)
1 在网站 http://code.google.com/p/protobuf/downloads/list上可以下载 Protobuf 的源代码。然后解压编译安装便可以使用它了。
安装步骤如下所示:
tar -xzf protobuf-2.1.0.tar.gz
cd protobuf-2.1.0
./configure --prefix=/usr/local/protobuf
make
make check
make install
2 > sudo vim /etc/profile
添加
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
保存执行
source /etc/profile
同时 在~/.profile中添加上面两行代码,否则会出现登录用户找不到protoc命令
3 > 配置动态链接库路径
sudo vim /etc/ld.so.conf
插入:
/usr/local/protobuf/lib
4 > su #root 权限
ldconfig
5> 写消息文件:msg.proto
package lm;
message helloworld
{
required int32 id = 1;
// ID
required string str = 2;
// str
optional int32 opt = 3;
//optional field
}
将消息文件msg.proto映射成cpp文件
protoc -I=. --cpp_out=. msg.proto
可以看到生成了
msg.pb.h 和msg.pb.cc
6> 写序列化消息的进程
write.cc
#include "msg.pb.h"
#include <fstream>
#include <iostream>
using
namespace
std;
int
main(
void
)
{
lm::helloworld msg1;
msg1.set_id(101);
msg1.set_str(
"hello"
);
fstream output(
"./log"
, ios::out | ios::trunc | ios::binary);
if
(!msg1.SerializeToOstream(&output)) {
cerr <<
"Failed to write msg."
<< endl;
return
-1;
}
return
0;
}
编译 write.cc
g++ msg.pb.cc write.cc -o write `pkg-config --cflags --libs protobuf` -lpthread
执行write
./write, 可以看到生成了log文件
7> 写反序列化的进程
reader.cc
#include "msg.pb.h"
#include <fstream>
#include <iostream>
using
namespace
std;
void
ListMsg(
const
lm::helloworld & msg) {
cout << msg.id() << endl;
cout << msg.str() << endl;
}
int
main(
int
argc,
char
* argv[]) {
lm::helloworld msg1;
{
fstream input(
"./log"
, ios::in | ios::binary);
if
(!msg1.ParseFromIstream(&input)) {
cerr <<
"Failed to parse address book."
<< endl;
return
-1;
}
}
ListMsg(msg1);
}
编译:g++ msg.pb.cc reader.cc -o reader `pkg-config --cflags --libs protobuf` -lpthread
执行./reader 输出 :
101
hello
8> 写Makefile文件
all: write reader
clean:
rm -f write reader msg.*.cc msg.*.h *.o log
proto_msg:
protoc --cpp_out=. msg.proto
write: msg.pb.cc write.cc
g++ msg.pb.cc write.cc -o write `pkg-config --cflags --libs protobuf`
reader: msg.pb.cc reader.cc
g++ msg.pb.cc reader.cc -o reader `pkg-config --cflags --libs protobuf`
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/人工智能uu/article/detail/1008928
推荐阅读
article
在
Windows
上
运行
Linux
:
WSL2
完整指南(一)...
WSL(
Windows
Subsystem for
Linux
)是微软推出的一种
在
Windows
操作系统
上
运行
Li...
赞
踩
article
linux
shell
解压
缩_
ai
shell
1
解压
...
.Tar.gz
解压
:Tar zxvf FileName.Tar.gz 压缩:Tar zcvf FileNa...
赞
踩
article
Linux
从入门到精通
:
常用
压缩
和解
压缩
命令
_
linux
压缩
解
压缩
常用
命令
...
gzip
命令
压缩
完成后会删除源文件,可以使用 -c选项将
压缩
结果输出到标准输出,并配合输出重定向的方式将
压缩
内容重定向...
赞
踩
article
【
Linux
】
解压
缩
--
三种方法!!看这一篇就足够
用
了。_
linux
解压
...
打包和
解压
缩
,
Linux
中打包文件一般是以.tar结尾的,压缩的文件一般是以.gz (.bz2)结尾的。通常打包和压缩是...
赞
踩
article
linux
-
解压
命令总结 (
zip
,
tar
.
gz
,
tar
.
xz
,
tar
.
lz
)...
一、
tar
&
tar
.
gz
tar
tar
.
gz
tar
-xvf abc.
tar
tar
-xvf abc.
tar
.
gz
二、...
赞
踩
article
linux
系统常用
压缩
和
解压
命令_
redhat
解压
tar
.
gz
压缩
包命令...
.
tar
解包
tar
xvf filename.
tar
.
tar
打包
tar
cvf filename.
tar
dir...
赞
踩
article
【
linux
】
解压
|
压缩
|打包命令(
tar
|
zip
|rar|bz)_
tar
解压
...
解压
文件
tar
-zxvf
压缩
文件名.
tar
.gz
解压
tar
.gz后缀的文件un
zip
压缩
文件名.
zip
解压
....
赞
踩
article
Linux
压缩
与解
压缩
_
linux
压缩
文件夹
...
⏹Linux
压缩
与解
压缩
_
linux
压缩
文件夹
linux
压缩
文件夹
...
赞
踩
article
Linux
| 压缩和
解压
文件
详细_
linux
解压
文件
...
本文详细介绍了
Linux
系统中用于压缩和
解压
文件
的各种命令,包括unzip命令对zip
文件
的操作,如
解压
到特定目录、不覆...
赞
踩
article
Linux
---
常用
重要
操作
指令
-----(基础
指令
)_
linux
中-
exec
cp什么意思...
Linux
常用
重要基础
操作
指令
常用
操作
指令
目录相关
指令
普通相关
指令
匹配查找
指令
权限相关
指令
常用
操作
指令
所有的
指令
都是在对...
赞
踩
article
macos
linux
查看压缩文件内容,
find
查找文件 -
exec
然后压缩 查看
tar
包的内...
[root@cs Downloads]#
find
./ -name "banner*" -
exec
tar
-cvf ...
赞
踩
article
[
Linux
]
压缩
、
查找
命令
_
linux
查找
和
压缩
...
关于
压缩
和
查找
等
命令
的解释和例子_
linux
查找
和
压缩
linux
查找
和
压缩
...
赞
踩
article
Linux
(
一
) —— 基本
指令
_-
exec
rm
-rf {}...
Linux
——基本
指令
1、ls
指令
1、ls
指令
ls
指令
的功能有两个:
一
是对于目录,列出该目录下的所有子目录与文件。二是对...
赞
踩
article
Linux
xargs
命令
详解
_|
xargs
rm
-
rf
{}
命令
详解
...
1、多行内容的单输出且每行3个 cat /home/omc/ftl/logs.txt |
xargs
-n3 ...
赞
踩
article
linux
——基本
指令
(
1
)_
stat
目录
...
本文介绍了Linux系统中的一些基本
指令
,包括ls、pwd、cd、路径、touch、mkdir和
stat
。ls用于查看文...
赞
踩
article
Docker
commands
on
Linux
(WSL)...
【代码】
Docker
commands
on
Linux
(WSL)
Docker
commands
on
Linux
(...
赞
踩
article
Linux
Polkit
权限提升漏洞:CVE-
2021
-
4034
安全
分析与
修复
指南_cve-202...
作为网络
安全
领域的专家,我对近期发现的影响
Linux
系统的
Polkit
权限提升漏洞(CVE-
2021
-
4034
)进行了深...
赞
踩
article
Linux
Polkit
权限提升
漏洞
(
CVE
-202
1
-4034)_
linux
polkit0.
1
1
...
本文详细介绍了
Linux
Polkit
权限提升
漏洞
(
CVE
-202
1
-4034),该
漏洞
允许攻击者通过修改环境变量获取r...
赞
踩
article
【
CVE
-
2021
-
4034
】
Linux
Polkit
权限提升
漏洞
复现及
修复
...
CVE
-
2021
-
4034
漏洞
复现及
修复
_cve-
2021
-
4034
cve-
2021
-
4034
...
赞
踩
article
【
漏洞
复现】
Linux
Polkit
权限提升
漏洞
(
CVE
-2021-4034)_
polkit
查看
版本
...
Linux
Polkit
权限提升
漏洞
(
CVE
-2021-4034)_
polkit
查看
版本
polkit
查看
版本
...
赞
踩
相关标签
windows
linux
运维
wsl
shell
服务器
macos linux 查看压缩文件内容
docker
容器