引言
在编译Hadoop/hive源代码的时候需要提前安装protobuf-2.5.0的,而且版本不要高了或者低了,因为hadoop的rpc通信里面是直接使用protobuf-2.5.0作为数据格式交换的
错误日志
安装过程中会出现以下错误
fatal error: too many errors emitted, stopping now [-ferror-limit=]
9 warnings and 20 errors generated.
make[2]: *** [atomicops_internals_x86_gcc.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
完整安装流程
下载安装包
源码包是protobuf-2.5.0.tar.gz,可以从如下 github 上下载,如果无法下载,私信我也可以。
下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0
下载下来后解压压缩包,并进入目录
tar -xzvf protobuf-2.5.0.tar.gz`
cd protobuf-2.5.0
编辑 platform_macros.h 文件(解决上面arm适配问题)
文件地址:src/google/protobuf/stubs/platform_macros.h
添加下面信息:位置在
#elif defined(__arm64__)
#define GOOGLE_PROTOBUF_ARCH_ARM 1
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
#(下面已经存在,上面三行需要新加)
#else
#error Host architecture was not detected as supported by protobuf
#endif
proto 编译
./configure --prefix=/usr/local/protobuf
make check
make && sudo make install
验证
我把命令配置到我的环境变量中
export PROTOBUF=/usr/local/protobuf
export PATH=$PATH:$PROTOBUF/bin
验证
➜ ~ protoc --version
libprotoc 2.5.0
如上编译问题就解决了
希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您