❶ centos7怎么编译安装gcc-c++
方法/步骤
1
yum install glibc-static libstdc++-static -y
安装c和c++的静态库(据说如果系统中缺少libc.a和libstdc++.a编译时会出错,但是我没有那么多闲情逸致去试,实践过的朋友可以回复一下,分享一下经验,让大家都长长见识)
2
下载解压gcc,我的gcc目录是gcc-4.8.0
3
进入gcc目录,执行:
./contrib/download_prerequisites
这个神奇的脚本文件会帮我们下载、配置、安装那三个依赖的库。可以节约我们大量的时间和精力。
4
你以为这三个库自动下载了、自动make install了就没事了吗?错!
很多人在编译gcc的时候出现各种奇奇怪怪的错误就是这步没有做好。
它们还不在.so文件的搜索路径里面,需要加进去,最后切记切记一定要执行一下ldconfig。
大致做法为:
1,找到你的共享库文件被install到哪个目录了(updatedb+locate命令)。
2,如果你的库不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf文件,加入你的共享库的路径
3,如果在2中添加了共享库路径,切记要执行一下ldconfig,更新响应cache文件让系统能找到你的共享库。
5
建立临时目录,这个目录用以存放编译时的大量临时文件,是文档要求中必须的。
我是在gcc-4.8.0下建立了一个名为gcc-build-4.8.0的目录,进入它。
mkdir gcc-build-4.8.0
cd gcc-build-4.8.0
配置gcc编译选项
6
强烈建议阅读INSTALL目录下的说明文档,尤其是configure.html,以确定你的编译选项。
比较基本的选项有--enable-languages,说明你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查。
网上还说了什么--with-gmp、--with-mpfr、--with-mpc这三个选项,但是如果你3,4步做好了,就不要配了,反之你还是老实点吧别抱侥幸心理了。
调用gcc-4.8.0目录下的configure文件:
例如:
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
7
执行
../make #不解释
执行编译命令(#在8核的虚拟机上进行编译,每个核分配2个编译任务)
make -j16
make install编译过程CPU 核基本100%占用,整个编译用时11分50秒。
检查gcc版本
#你就等吧少年,建议晚上睡觉前做
当然上面三步一定要在前一步顺利结束的情况下进行,如果哪一步出错了,结果都显示error了,就不要再做后面的了。在shell的输出里搜索"error"看具体的出错点是什么,、google一下为什么。
如果你求稳的话,可以在make install之前先make check一下。
❷ CentOS6.8涓嬬紪璇戝畨瑁匞CC璇﹁В
鍏充簬 GCC 鍦 CentOS 涓嬮氲繃 yum 瀹夎呴粯璁ょ増链鍙凤纴CentOS 5 鏄 4.1.2锛汣entOS 6 鏄 4.4.7锛汣entOS 7 鏄 4.8.3銆
寰埚氭椂鍊椤湪缂栬疟瀹夎呰蒋浠堕兘闇瑕侀珮鐗堟湰镄 GCC锛屽惁鍒椤氨浼氭姤阌欍
闾d箞濡备綍鍗囩骇 GCC 镄勭増链锻锛
棣栧厛瑕佺‘璁ゅ崌绾у埌镄 GCC 鐗堟湰鍙枫
鐩鍓 GCC 镄勬渶鏂扮増宸茬粡鍒颁简 5.2锛岃 CentOS 7 鍒欎緷铹朵娇鐢ㄥ叾 4.8锛屾墍浠ュ熀浜庡吋瀹规ц冭槛锛屾垜阃夋嫨鍗囩骇鍒 4.8.5銆
GCC 瀹樼绣锛https://gcc.gnu.org
涓嬮溃寮濮嬩竴姝ヤ竴姝ユ潵缂栬疟瀹夎 GCC 4.8.5锛岄渶瑕佹敞镒忕殑鏄锛屽湪缂栬疟瀹夎 GCC 涔嫔墠锛岀郴缁熼噷蹇呴’鍏堣侀氲繃 yum 瀹夎呰佺増链镄 GCC 鍜屼緷璧栧簱銆
濡傛灉鏄鍦 x86_64 绯荤粺涓嬬紪璇戠殑璇濓纴杩橀渶瑕佸畨瑁 libgcc.i686 glibc-devel.i686 镓嶈屻
yuminstall-ygcctexinfo-texflexziplibgcc.i686glibc-devel.i686
娉ㄦ剰锛缂栬疟瀹夎 GCC 鍐呭瓨涓嶅皬浜 1GB锛孲wap 涓嶅皬浜 1GB锛岀‖鐩樻渶浣庝笉灏忎簬 10GB锛屽惁鍒欐瀬链夊彲鑳戒细涓阃旀姤阌欓鍑恒
缂栬疟瀹夎呭畬钖庯纴鐩褰 gcc-4.8.5 灏嗕细链 5GB 涔嫔氥
1銆佷笅杞芥簮镰
wgetftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
2銆佷笅杞戒緷璧栧寘
缂栬疟瀹夎 GCC 闇瑕佷緷璧 mpc锛宫pfr锛実mp鍖呫傚ソ鍦 GCC 婧愮爜閲岃嚜甯﹁剼链鍙浠ヨ交𨱒句笅杞戒緷璧栧寘銆
tarzxfgcc-4.8.5.tar.gz cdgcc-4.8.5 ./contrib/download_prerequisites
缂栬疟鍜屽畨瑁
# cd gcc-4.8.1
#./gcc-4.8.1/configure--prefix=/usr/local/gcc-4.8.1 --enable-languages=c,c+
prefix=/usr/local/gcc-4.8.1琛ㄧず閰岖疆瀹夎呯殑璺寰勶纴濡傛灉涓嶆寚瀹氩畨瑁呰矾寰勶纴镓ц屾枃浠朵细榛樿ゆ斁鍦/usr/local/bin涓嬶纴杩欐牱锅氭槸涓轰简鏂逛究缁存姢锛屽綋闇瑕佸嵏杞芥椂锛岀洿鎺ュ垹闄よョ洰褰曞嵆鍙銆
enable-languages琛ㄧず瀹夎呰瑷锛屽湪杩欓噷琛ㄧず鍙瀹夎卌鍜宑++
缂栬疟
鍑嗗囧伐浣滃畬鎴愬悗锛屽氨鍙浠ョ紪璇戜简
# make
姝よ繃绋嫔ぇ姒2灏忔椂宸﹀彸鍝︼纴濡傛灉涓阃旀姤阌欙纴鎻愮ずfatal error:gnu/stubs-32锛孨o such file or directory.濡备笅锲剧ず锛
杩愯屼笅闱㈠懡浠わ纴铹跺悗閲嶆柊缂栬疟
# yum -y install glibc-devel.i686 --setopt=protected_multilib=false
# make
❸ centos7怎么编译安装gcc-c++
下为最近升级gcc4.9.2的实际操作步骤
环境: CentOS-7.2 , 当前版本为gcc-4.8.5,用root进行安装
1、先要执行下面这一条命令,安装g++:
yum install gcc-c++
2、 gcc 编译需要三个额外库gmp、mpfr、mpc,下载并按照下面的顺序安装它们,如下:
wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.gz
wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.gz
wget http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz
tar -zxvf gmp-5.1.3.tar.gz
cd gmp-5.1.3
./configure
make && make install
cd ..
tar -zxvf mpfr-3.1.2.tar.gz
cd mpfr-3.1.2
./configure
make && make install
cd ..
tar -zxvf mpc-1.0.tar.gz
cd mpc-1.0
./configure
make && make install
cd ..
3、安装gcc:
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
tar -jxvf gcc-4.9.2.tar.bz2
cd gcc-4.9.2
./contrib/download_prerequisites
cd ..
mkdir gcc-build-4.9.2
cd gcc-build-4.9.2
../gcc-4.9.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install
4、修改/usr/bin/下gcc版本
执行/usr/bin/gcc --version查看版本:
gcc (GCC) 4.4.7-4
/usr/local/bin/gcc --version:
gcc (GCC) 4.8.2
发现多个版本的gcc。
此时执行以下操作:
mv /usr/bin/gcc /usr/bin/gcc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++4.4.7
ln -s /usr/local/bin/g++ /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc4.4.7
ln -s /usr/local/bin/gcc /usr/bin/cc
mv /usr/bin/c++ /usr/bin/C++4.4.7
ln -s /usr/local/bin/c++ /usr/bin/c++
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
5、检查动态库:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC