centos6 安装protobuf

问题

python 缺失protobuf包
ImportError: No module named google.protobuf.internal

解决办法

  • 安装
    传送门 自己下载所需对应版本
#下载
[root@centos6 develop]# wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz
#解压
[root@centos6 develop]# tar zxf protobuf-all-3.6.1.tar.gz 
#到解压目录
[root@centos6 develop]# cd protobuf-3.6.1/
# 编译 安装
[root@centos6 protobuf-3.6.1]# ./configure 
[root@centos6 protobuf-3.6.1]# make
[root@centos6 protobuf-3.6.1]# make install

# 安装protobuf的python模块
[root@centos6 protobuf-3.6.1]# cd python/
[root@centos6 python]# python setup.py build
[root@centos6 python]# python setup.py install

ps:如果没有遇到编译上的问题,那么恭喜你了。我就遇到了下述超级多问题

问题

  • 问题1
checking dependency style of gcc... (cached) gcc3
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... /lib/cpp
configure: error: in `/develop/protobuf-3.6.1':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details

#问题的根源是缺少必要的C++库,执行下述命令安装对应的库
[root@centos6 protobuf-3.6.1]# yum install glibc-headers
[root@centos6 protobuf-3.6.1]# yum install gcc-c++
  • 问题2
# ./configure 出现问题
configure: error: in `/develop/protobuf-3.6.1':
configure: error: sched_yield was not found on your system

#查看对应的config.log   原因就是你系统的gcc版本过低,不支持c++11 ,需要4.7.1以上

configure:7553: result: use default: -O2  -g -std=c++11 -DNDEBUG
configure:7573: checking whether __SUNPRO_CC is declared
configure:7573: g++ -c  -g -std=c++11 -DNDEBUG  conftest.cpp >&5
cc1plus: error: unrecognized command line option "-std=c++11"

请移步升级GCC文章centos 6.5 手动升级gcc

你可能感兴趣的:(centos6 安装protobuf)