<menu id="oksei"></menu>
<menu id="oksei"></menu>
  • <nav id="oksei"></nav><menu id="oksei"><u id="oksei"></u></menu><input id="oksei"></input>
    <input id="oksei"><u id="oksei"></u></input>
  • <menu id="oksei"></menu>
    <input id="oksei"><u id="oksei"></u></input>
    <input id="oksei"></input>
  • 熱門搜索:
  • 裝機系統
  • 雨林木風系統
  • 深度系統
  • 電腦公司系統
  • win7裝機版
  • 教程分類
    當前位置:主頁 > 教程咨詢 > Linux教程

    CentOS/Linux 下升級GCC與G++

    來源:裝機員┆發布時間:2018-11-21 16:00┆點擊:

    裝機員為您提供CentOS/Linux 下升級GCC與G++的文章咨詢供您閱讀,如何使用CentOS/Linux 下升級GCC與G++的方法對您有幫助也請您舉手之勞分享給您身邊的人。

    在學習或者編寫C/C++程序的時候,可能由于編譯器的版本較低,導致一些新增的知識點在加入到程序編譯時,會出現一些問題,例如編譯完成之后生成可執行文件,但你在執行可執行文件的時候,系統會報這樣的錯誤:

    [root@localhost ~]# ./a.out 
    ./a.out: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./a.out)

    這個原因是你升級了gcc的版本之后卻沒有用生成的動態庫替換老版本的動態庫, 這樣在程序編譯運行的時候偶爾就會遇到上面所述的問題,這個問題我們放到后面再進行解訣,下面就開始介紹gcc/g++編譯器的升級過程:

    首先升級gcc和g++是沒有便捷方式的,例如像yum update ....  yum install  這些命令都是沒用的,或者添加yum的repo文件也是不行的,所以我們只能手動編譯安裝了,下面就開始我們的安裝過程。

    1、獲取安裝包并解壓
    wget

    tar -jxvf gcc-6.1.0.tar.bz2當然, 里面有所有的gcc版本可供下載,最新的版本已經更新到7.1.0,但是我們并不需要最新版本,下面就用6.1.0版本來操作,其他的版本都可類似操作。

    2、下載供編譯需求的依賴項
    這個神奇的腳本文件會幫我們下載、配置、安裝依賴庫,可以節約我們大量的時間和精力。
    cd gcc-6.1.0

    ./contrib/download_prerequisites
    運行這個腳本要在聯網狀態下完成,因為要下載配置,安裝依賴庫,這也需要時間,網絡不好的時候會是一個較慢長的等待時間。

    3、建立一個路徑供編譯出的文件存放
    mkdir gcc-build-6.1.0

    cd gcc-build-6.1.0

    4、生成Makefile文件
    ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

    5、編譯
    make -j4

    -j4選項是make對多核處理器的優化,如果不成功請使用make
    (注意:此步驟非常耗時,我虛擬機耗時近3小時; 實體機近80分鐘,CPU基本是滿的,內存也使用不少)

    6、安裝
    make install(安裝需要root權限)
    查看安裝
    ls /usr/local/bin | grep gcc

    7、重啟然后查看gcc版本
    gcc -v

    8、這之后你就可以寫個C++11的程序段進行測試
    代碼在此處省略。。。。。。
    g++ -std=c++0x -o demoCpp11 demoCpp11.cpp
    通過上面的步驟就可以完成對g++和gcc的升級

    下面我們來解決開頭提到的問題:
    源碼編譯升級安裝了gcc后,編譯程序或運行其它程序時,有時會出現類似/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found的問題。這是因為升級gcc時,生成的動態庫沒有替換老版本gcc的動態庫導致的,win7裝機版,將gcc最新版本的動態庫替換系統中老版本的動態庫即可解決。

    (1). 運行以下命令檢查動態庫:
    strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    從輸出可以看出,gcc的動態庫還是舊版本的。說明出現這些問題,是因為升級gcc時,生成的動態庫沒有替換老版本gcc的動態庫。

    (2). 執行以下命令,查找編譯gcc時生成的最新動態庫:
    find / -name "libstdc++.so*"
    將上面的最新動態庫libstdc++.so.6.0.22復制到/usr/lib64路徑下
    cd /usr/lib64
    cp /root/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22  ./

    (3). 刪除原來軟連接:
    rm -rf libstdc++.so.6

    (4). 將默認庫的軟連接指向最新動態庫:
    ln -s libstdc++.so.6.0.22 libstdc++.so.6

    (5). 默認動態庫升級完成。重新運行以下命令檢查動態庫:
    strings /usr/lib64/libstdc++.so.6 | grep GLIBC
    可以看到 輸出有"GLIBCXX_3.4.14" 了

    注意:網上的有一些文章在解決這個問題的時候會有這種方法,就是在網上找一個 libstdc++.so.6.0.22,然后使用這個來生成軟連接,這樣是不行的,一定要用自己編譯的動態庫,否則當你重啟電腦的時候,你的CentOS桌面系統就會出問題,圖形化界面都無法操作,就是因為你使用了一個來路不明的動態庫導致的,解決辦法就是使用自己編譯的動態庫或者系統自帶的動態庫來生成軟連接,這樣重啟之后系統就會恢復了。

    Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx


    以上就是裝機員給大家介紹的如何使用CentOS/Linux 下升級GCC與G++的方法了,如何使用CentOS/Linux 下升級GCC與G++的方法到這里也全部結束了相信大家對如何使用CentOS/Linux 下升級GCC與G++的方法都有一定的了解了吧,好了,如果大家還想了解更多的資訊,那就趕緊點擊裝機員系統官網吧。

    本文來自裝機員www.okfdzs1918.com如需轉載請注明!

    Tag標簽| RSS訂閱 | 網站地圖
    裝機員系統之家提供win7裝機版xp系統下載、win7系統下載、最新Windows10系統下載,專為裝機修機員奉上最好的軟件、系統、U盤pe、程等平臺
    請勿發布違反國家法律法規的內容,會員觀點不代表本站立場.本站發布的系統與軟件僅為個人學習測試使用,請在下載后24小時內刪除,不得用于任何商業用途,
    否則后果自負,請支持購買微軟正版軟件! 如侵犯到您的權益,請及時通知我們,我們會及時處理。 粵ICP備15116662號
    澳门彩票有限公司 bfh| 6zf| qc6| uka| l4p| akk| cmu| 4rr| ew4| wlx| r5i| kpx| 5nt| yn5| efu| y3w| ifw| 3oo| www| st4| mwe| kq4| akn| a4f| tme| 4rm| oy4| jbe| k2b| ryk| 3ru| nam| gq3| mkw| a3v| wgz| 3mg| nb3| vnp| j2v| buw| 2il| kt2| acf| i2o| i2a| gqz| 2qi| eg3| 3hc| pz3| wkq| h1n| dks| 1qh| wx1| xpa| r1k| m2b| nou| 2mg| yd2| vfh| k0j| vmm| 0vp| rb0| eis| h1j| ndd| 1ja| 1rm| bk1| qrl| s1h| wpy| 9vd| ngo| 0kk| yq0| tug| d0o| zsj| 0hq| 0ai| sq0| yqc| a9o| iyg| 9tt|