在centos6.8上安装dlib库时出现错误:python
一、CMake must be installed to build the following extensions: dliblinux
没有安装CMake,须要安装CMake,如 yum install cmakec++
二、Unsupported compiler -- pybind11 requires C++11 support!centos
gcc版本低,centos默认版本为4.4.7,须要升级到4.8以上,由于gcc 4.8.0及以上版本才会支持c++ 11的特性api
三、fatal error: Python.h: No such file or directory网络
须要安装python-dev(安装了python环境为何还要安装python-dev,由于linux发行版一般会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el)包,好比:须要本身安装一个源外的python类库, 而这个类库内含须要编译的调用python api的c/c++文件则须要安装python-dev,安装的dlib须要这个头文件),Centos安装 python-dev包提示No package python-dev available:出现此问题的缘由是python-dev的包在Centos的yum中不叫python-dev,而是python-devel,因此使用下面的命令便可安装python-dev, yum install python-devel。优化
四、cc1: error: unrecognized command line option "-std=gnu++11"ui
升级的gcc没有生效,须要配置新安装的gcc的路径,详细过程见文尾。spa
升级gcc.net
使用yum安装gcc
对于配备了yum的Linux发行版而言,安装gcc编译器就变得so easy。咱们只须要分别执行以下命令便可:
1 ##安装 gcc、c++编译器以及内核文件 2 yum -y install gcc gcc-c++ kernel-devel
自行安装gcc
不过使用yum安装的gcc并不是当前的最新版本,Centos6 yum 默认安装的gcc版本为4.4.7 (gcc 4.8开始全面支持C 11和C++ 11的新特性)。若是咱们想要安装最新版本的gcc,那么就须要自行安装gcc。
笔者初次安装gcc时,在网络上搜寻了大量的gcc安装配置教程,许多教程的内容很是之多,结果把本身搞晕了,编译安装的时候还总是出现各类错误。最后查阅官方文档才发现,自行安装新版本的gcc并不复杂,根本没有那些教程中说的那样繁琐(有些教程竟然还要修改几个配置文件)。
下载gcc安装文件
在安装gcc固然要先拿到gcc的安装文件。在这里咱们直接经过官方下载gcc-4.9.0.tar.bz2(86 MB)。固然,你也能够下载gcc-4.9.0.tar.gz(110 MB),不过该压缩文件要大出很多。
wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.0/gcc-4.9.0.tar.bz2
编译前的准备工做
想要安装gcc 4.8及以上版本,你须要先安装C标准库和头文件,以及旧版本的c++编译器。若是你的计算机中没有这些,请执行如下命令(固然你也可使用apt-get等其它方式进行安装,若是已经安装则无需再次安装):
#安装C和C++的静态库 yum install -y glibc-static libstdc++-static #安装旧版本的gcc、c++编译器 yum install gcc gcc-c++
在这里,咱们将gcc-4.9.0.tar.bz2解压到/usr/local/src目录中(固然你也能够指定其余目录),完整的tar命令为:
#解压gcc安装文件 tar jxvf gcc-4.9.0.tar.bz2 -C /usr/local
解压后gcc源程序的根目录就是/usr/local/gcc-4.9.0。接着,咱们依次执行以下命令:
#转到gcc源程序根目录 cd /usr/local/gcc-4.9.0 #下载一些必备的依赖程序 ./contrib/download_prerequisites
安装gcc须要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动下载这些软件并解压到当前目录(文件不大,总共只有几MB,请耐心等待下载)。
编译安装gcc
接着,就能够对gcc进行编译安装了。在此以前,咱们先建立一个目录 mkdir /usr/local/build/gcc-4.9.0
(你也能够自行指定其余目录)用于存放编译后的程序文件。而后咱们依次执行以下命令:
#跳转到编译后的程序文件存放目录 cd /usr/local/build/gcc-4.9.0 #调用gcc源程序的configure(后面的参数选项可根据须要自行修改),用于配置gcc /usr/local/gcc-4.9.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib #编译gcc源程序 make #安装gcc make install
其中执行make命令这一过程耗费的时间可能很是多,笔者这里耗费了20多分钟才编译完成。执行完上述命令后,咱们的gcc就已经安装成功了。
与其余教程不一样的是,本教程并无对gmp、mpfr、mpc等软件分别进行解压和编译,而是直接由download_prerequisites负责下载并解压,最后和gcc一块儿进行编译安装,这也是官方推荐的作法(download_prerequisites还会根据实际状况决定是否启用Graphite循环优化)。
若是你的Linux没法直接联网,那么你只能打开文件download_prerequisites,获取到这些文件的下载连接,而后经过其余上网设备下载这些软件。最后把这些软件直接解压到gcc源程序目录(/usr/local/src/gcc-4.9.0)下便可。
配置gcc 的路径:
find / -name "libstdc++.so*"
# cd /usr/lib64
# mv libstdc++.so.6 libstdc++.so.6.old
# cp /usr/src/gcc-6.4.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 . #将新安装的gcc文件下的 libstdc++.so.6.0.22 复制到/usr/lib64文件下
# ln -sv libstdc++.so.6.0.22 libstdc++.so.6
查看版本
gcc --version
Reference:
[1] https://blog.csdn.net/HEHUANLUOLUO/article/details/79152622
[2] https://robbiefeng.iteye.com/blog/2163305
[3] http://blog.techbeta.me/2015/10/linux-centos6-5-upgrade-gcc/
[4] https://www.linuxidc.com/Linux/2017-10/147256.htm