❶ 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