发布时间:2023-09-21 11:30
获取源码:protobuf-cpp-3.11.4.tar.gz
如果需要其他语言的源码,请下载
protobuf-all-[VERSION].tar.gz
,其中的all
也可替换为其他单独的一种语言,如protobuf-java-[VERSION].tar.gz
如果想要用git clone
获取源码,还需要多一步获取子模块,请参考官方使用文档 README.md
接下来,编译并安装Protobuf:
为了有序,我把安装目录设定为/usr/local/protobuf
./configure --prefix=/usr/local/protobuf
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.
这里就安装完成了,然后使用
protoc --version
查询版本号,如果有就说明安装成功。
如果不成功,请配置一下环境变量/etc/profile
,参考jackytse_:linux下安装google protobuf(详细)
Github:grpc
make
make check
sudo make install
grpc中提供了一些例子供快速上手:
cd ./examples/cpp/helloworld
make
./greeter_server
切换到另一个终端:
./greeter_client
顺利的话会看到Hello World
参考:examples
本人使用gcc9和grpc1.22.0,所以出现了一些问题,经过搜索后,发现在上游社区里有些pr更新正好解决了这些问题,记录如下:
implicitly-declared operator= is deprecated
include/grpcpp/impl/codegen/call_op_set.h
line 90添加 /// Default assignment operator
WriteOptions& operator=(const WriteOptions& other) = default;
error: ambiguating new declaration of ‘long int gettid()’
src/core/lib/gpr/log_linux.cc
、src/core/lib/gpr/log_posix.cc
、src/core/lib/iomgr/ev_epollex_linux.cc
这几个文件中的gettid()
改为sys_gettid()
no reference on protobuf blablabla
(记不太清了,大概是这样,跟protobuf有关)/usr/local
目录下,实际上看编译配置文件会发现它默认安装在/usr
下,导致我配环境变量的时候PKGCONFIG路径配错了。。。Python吴恩达深度学习作业5 -深度神经网络的应用(猫分类器)
我的Java Web之路 - Servlet(2)- 核心原理
Hive-异常处理Hive Schema version 2.3.0 does not match metastore's schema version 1.2.0 Metastore is not
CVPR2021注意力机制——Coordinate Attention || Pytorch代码实现
【老生谈算法】基于matlab的运动目标识别与跟踪系统设计与算法原理及程序源码——目标识别算法