文章标题
来源:互联网 发布:淘宝店铺标题图片 编辑:程序博客网 时间:2024/06/10 03:06
背景:1、在做文本挖掘的时候,安装“结巴”算法包,需要gcc版本>4.6,但是不知道是不是有内核或其他东西是gcc低版本支持的,只好安装多版本;
2、linux版本:Red Hat Enterprise Linux Server release 6.2 (Santiago);
3、之前gcc版本4.4.6;新安装并存的gcc版本是4.8.3;
4、账户没有root权限,但是可以使用sudo(sudo免密码)命令;
5、因为平台数据保密性,不能连接外网,只能离线安装;(连网自动下载或者更新也会变得简单一点)
6、自己编译配置gcc;(也可以安装编译好的,一切都会变得超简单了http://www.rpmfind.net/linux/rpm2html/search.php?query=gcc)
操作过程:一、下载gcc:
在官网http://gcc.gnu.org/,有版本变化内容和说明文档,在右侧有镜像下载连接。最近的版本是gcc 5.1,综合考虑版本更新和稳定性,最终选择了gcc-4.8.3.tar.gz安装;
二、下载依赖库:一共五个,缺一不可
(make一次将近一个小时,最后报个缺依赖库的错,我能说都是泪吗。网上很多只列了三个依赖库真是坑。)
GMP
MPFR
MPC
ISL
CLOOG
根据linux版本和gcc版本选择合适的依赖库版本,一般都没问题,我选择了:
gmp-4.3.2.tar.bz2、mpfr-2.4.2.tar.bz2、mpc-0.8.1.tar.gz、isl-0.12.2.tar.bz2、cloog-0.18.1.tar.gz
三、安装依赖库: 1、注意安装顺序: 最先安装GMP,然后装MPFR,再装MPC。因为MPFR依赖于GMP;MPC依赖于GMP和MPFR。 ISL要在GMP之后,再安装,也是因为依赖的关系,ISL依赖GMP。CLOOG在GMP和ISL之后安装。 2、具体安装方法: 1)解压 ——>生成源目录${srcdir}: tar -xjvf gmp-4.3.2.tar.bz2 tar -xjvf mpfr-2.4.2.tar.bz2 tar -xzvf mpc-0.8.1.tar.gz tar -xjvf isl-0.12.2.tar.bz2 tar -xzvf cloog-0.18.1.tar.gz 生成源目录${srcdir}:gmp-4.3.2 mpfr-2.4.2 mpc-0.8.1 isl-0.12.2 cloog-0.18.1 2)建立目标目录${objdir}:(在这个目录下配置和编译,和${srcdir}根目录相同) mkdir gmp_build mkdir mpfr_build mkdir mpc_build mkdir isl_build mkdir cloog_build 3)建立安装目录${destdir}:(编译好的文件会存在这个路径下,我都放在/usr/local下了) mkdir /usr/local/mpfr2.4.2 mkdir /usr/local/mpc0.8.1 mkdir /usr/local/gmp4.3.2 mkdir /usr/local/isl0.12.2 mkdir /usr/local/cloog0.18.1 4)配置、编译和安装依赖库: 配置和编译每个依赖库的过程都是在各自目标目录{objdir}下进行: A 配置、编译和安装 gmp: a.1、配置gmp:(在gmp_build下) ../gmp-4.3.2/configure --prefix=/usr/local/gmp4.3.2 --enable-shared a.2、编译gmp:(在gmp_build下) make a.3、检核: make check a.4、安装: make install B 配置、编译和安装 MPFR: 步骤同上,注意路径,主要是配置过程不同: ../mpfr-2.4.2/configure --prefix=/usr/local/mpfr2.4.2 --with-gmp=/usr/local/gmp4.3.2 C 配置、编译和安装 MPC: 步骤同上,注意路径,主要是配置过程不同: ../mpc-0.8.1/configure --prefix=/usr/local/mpc0.8.1 --with-gmp=/usr/local/gmp4.3.2 --with-mpfr=/usr/local/mpfr2.4.2 D 配置、编译和安装 ISL: 步骤同上,注意路径,主要是配置过程不同: ../isl-0.12.2/configure --prefix=/usr/local/isl0.12.2 --with-gmp-prefix=/usr/local/gmp4.3.2/ E 配置、编译和安装 CLOOG: 步骤同上,注意路径,主要是配置过程不同: ../isl-0.12.2/configure --prefix=/usr/local/cloog0.18.1 --prefix=/usr/local/isl0.12.2 --with-gmp-prefix=/usr/local/gmp4.3.2/ --enable-static 四、安装gcc: 1、解压:gcc: tar -xzvf gcc-4.8.3.tar.gz 2、建立目标目录${objdir}: mkdir gcc_8.4.3_build 3、建立安装目录${destdir}: mkdir /usr/local/gcc8.4.3 4、配置:在${objdir}下: A、先设置library、c_include和c++_include的路径:
export LD_LIBRARY_PATH=/usr/local/gmp4.3.2/lib:/usr/local/mpfr2.4.2/lib:/usr/local/mpc0.8.1/lib:/usr/local/isl0.12.2/lib:/usr/local/cloog0.18.1/lib
export C_INCLUDE_PATH=/usr/local/gmp4.3.2/include:/usr/local/mpfr2.4.2/include:/usr/local/mpc0.8.1/include:/usr/local/isl0.12.2/include:/usr/local/cloog0.18.1/include
export CPLUS_INCLUDE_PATH=/usr/local/gmp4.3.2/include:/usr/local/mpfr2.4.2/include:/usr/local/mpc0.8.1/include:/usr/local/isl0.12.2/include:/usr/local/cloog0.18.1/include
B、再configure(主要设置是否需要check、是否shared、multilib、再后面是一串依赖库、支持的语言) ../gcc-4.8.3/configure --disable-checking --enable-shared --enable-static --disable-multilib --prefix=/usr/local/gcc4.8.3 --with-isl-include=/usr/local/isl0.12.2/include --with-isl-lib=/usr/local/isl0.12.2/lib --enable-languages=c,c++ --with-gmp=/usr/local/gmp4.3.2 --with-mpfr=/usr/local/mpfr2.4.2 --with-mpc=/usr/local/mpc0.8.1 --with-cloog=/usr/local/cloog0.18.1 5、编译: make (需要一个多小时,就这在这里差点被虐哭) 注意:如果在这里make之后报错,重复上述步骤之前,要先清空make错误的内容:make clean(或者sudo make distclean) 禁止了静态库的情况下可以安装成功,但是enable了静态库,还是报错????? 报错内容: configure: loading cache ./config.cache configure: error: `LDFLAGS' has changed since the previous run: configure: former value: ` ' configure: current value: `-static-libstdc++ -static-libgcc ' configure: error: in `/data/hadoop/gcc_4.8_build/fixincludes': configure: error: changes in the environment can compromise the build configure: error: run `make distclean' and/or `rm ./config.cache' and start over make[1]: *** [configure-fixincludes] 错误 1 make[1]: Leaving directory `/data/hadoop/gcc_4.8_build' 6、安装: make install 四、多版本gcc共存设置: 1、查看旧版本gcc路径: which gcc (查看结果是/usr/bin/gcc) 2、重命名旧版本的文件名(需要root权限) sudo mv gcc gcc4.6.4 3、将新版本的gcc4.8.3指向gcc cd /usr/bin sudo ln -s /usr/local/gcc4.8.3/bin/gcc gcc sudo ln -s /usr/local/gcc4.8.3/bin/g++ g++
部分内容参考:GCC介绍:https://gcc.gnu.org/wiki/InstallingGCC
ISL介绍:https://www.cs.colostate.edu/wiki/ISL:_Integer_Set_Library
http://stackoverflow.com/questions/9450394/how-to-install-gcc-from-scratch-with-gmp-mpfr-mpc-elf-without-shared-librari
http://blog.sina.com.cn/s/blog_4900f3fb0100jk86.html
error:_cannot_compute_suffix_of_object_files:_cannot_compile.27.27._What_is_the_problem.3F”>https://gcc.gnu.org/wiki/FAQ#Configuration_fails_with.27.27configure:_error:_cannot_compute_suffix_of_object_files:_cannot_compile.27.27._What_is_the_problem.3F
rm -R stage_final
http://www.fx114.net/qa-79-210168.aspx
apt-get install libc6-dev-i386
$ sudo ln -sf g++-4.7 g++
# cd /usr/bin/
# ln -si ln -si /usr/local/gcc-4.8.3/bin/gcc gcc (修改gcc符号链接)
# ln -si ln -si /usr/local/gcc-4.8.3/bin/g++ g++ (修改g++符号链接)
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 递归倒序字符串的方法(1207)
- Android自学——ListView
- spring-xxxJar包
- Android动画之帧动画(三)
- base64加解密源码(可直接调用)
- 文章标题
- Codeforces Round #118 (Div. 2)-C-Plant(构造矩阵)
- Java入门_Java基础知识下
- 端口映射
- AR技术新突破,基于图的平面物体跟踪算法Gracker
- Leetcode: populating-next-right-pointers-in-each-node
- c#中txt与datagridview的数据交互
- 研究微信小程序
- Tensorflow之常用方法总结(1)