NCTU_CS_EDA 板


LINE

為了避免自己忘記,先 PO 在這做個紀錄XD 一般來說如果能直接用套件管理員更新所要的套件的話當然最好 因為這樣比較方便,管理上也比較輕鬆~ 不過這次之所以會想更新 gcc 主要是現在 server 的 gcc 版本不夠新 有些 c++0x 的東西還沒有支援,因為不想重寫 code 所以乾脆就把 gcc 更新一下XD (關於 C++0x 有支援什麼東西請見 reference) 更新 gcc 所需的套件可在以下的 GNU 網站上下載 http://www.gnu.org/software/software.html 這次我的作法是下載 gcc 的 source 下來自己重新編這樣 要手動更新任何套件第一件要注意的事情就是套件相依性的問題 要如何得知這個套件跟那些套件有相依性可以在 $ configure 跑完後看結果,如果相依性沒有問題就會跑出 Makefile 讓你 compile 有問題的畫看一下 error message 或是 log 就可以知道還少了那些東西 gcc 的相依套件有這些:gmp, mpfr, mpc 其中 mpfr 相依 gmp、mpc 相依 gmp 跟 mpfr 所以安裝順序一定是 gmp -> mpfr -> mpc -> gcc 順序不能錯! 不過如果系統已經有的東西當然也就不用裝了這樣~ 這次因為 server 上 3 個都版本都太舊,所以要從 gmp 開始編 這次編 gcc-4.6.2 分別用到的是 gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1 接下來說明詳細步驟: 1. 首先先把所有套件找個地方解壓縮 一般可能會在 /tmp 這個資料夾底下 (因為這邊專門放雜物= =+) 2. 一般來說自己編的套件都會放在 /usr/local 這個資料夾底下 這邊沿用這個慣例,在 /usr/local 底下分別建了這 4 個資料夾: gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1、gcc-4.6.2 3. 誠如前面所說,先編 gmp 這個套件: a. 先切到 /usr/local/gmp-4.3.2 這個資料夾裡 $ /tmp/gmp-4.3.2/configure --prefix=/usr/local/gmp-4.3.2 --prefix 主要是設定之後 gmp 的相關東西要去哪裡找 (如果我沒記錯的話= =a) b. $ make c. $ make install 4. 再來編 mpfr 這個套件: a. 先切到 /usr/local/mpfr-2.4.2 這個資料夾裡 $ /tmp/mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2 --with-gmp 是設定在編 mpfr 時去找剛剛編好的 gmp b. $ make c. $ make install 5. 再來編 mpc 這個套件: a. 先切到 /usr/local/mpc-0.8.1 這個資料夾 $ /tmp/mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 b. $ make c. $ make install 6. 以上都準備完畢後就可以來編恐怖的 gcc 了: 備註:因為 gcc 非常龐大,全部編完大概要一小時Orz 昨天因為一直搞不定重編了 3 次...累死我也...||| 建議可以搭配 screen 避免不能關掉 terminal 的窘境XD a. 先切到 /usr/local/gcc-4.6.2 這個資料夾 /tmp/gcc-4.6.2/configure --prefix=/usr/local/gcc-4.6.2 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1 --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++ --with-system-zlib 以上是我在 server 上編 gcc 下的參數 這些 google 一下大概就會知道可以怎麼下了 b. $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH :/usr/local/gmp-4.3.2/lib :/usr/local/mpfr-2.4.2/lib :/usr/local/mpc-0.8.1/lib 注意,這一整行中間不要斷開,我只是因為這樣排版比較好看= =a 不過說真的這一行這時候不下好像不影響= =a c. $ make d. $ make install 7. 都編完後再來就是設定系統囉! a. 先利用以下指令找出 gcc/g++ 到底都是放在哪個資料夾裡: $ which gcc | sed 's/gcc//g' 在 server 上是在 /usr/bin 這裡 b. 再來在這邊建立一個 soft link 到剛剛編好的 gcc 那裡 $ ln -s /usr/local/gcc-4.6.2/bin/gcc /usr/bin/gcc g++ 也是: $ ln -s /usr/local/gcc-4.6.2/bin/g++ /usr/bin/g++ 備註:做這個 link 前可以先把舊的 gcc 改名 c. 再來為了要讓 gcc 能夠找到這些套件不用每次都重新設定 所以要設定一下 library path 設定方法可以附加在 LD_LIBRARY_PATH 後面 (如 6-b,可以直接寫死在 /usr/.bashrc) 或者是用下面這個方法:修改 /etc/ld.so.conf i. 在 /etc/ld.so.conf 這個檔案後面附加上下面這三行 /usr/local/gmp-4.3.2 /usr/local/mpfr-2.4.2 /usr/local/mpc-0.8.1 備註:可能只要 /usr/local/mpc-0.8.1 就夠了 不過為了省事我就乾脆全加了 ii. $ ldconfig (不要打錯喔,是 "L"dconfig) d. 之後要讓 GLIBCXX 可以抓到正確的版本: i. cp /usr/local/gcc-4.3.2/x86_64-unknown-linux-gnu /libstdc++-v3/src/.libs/libstdc++.so.6.0.16 /usr/lib 1、2 行那個路徑其實是連在一起的,不過他太長了只好斷開...||| gcc-4.6.2 找到的是 libstdc++.so.6.0.16 這個可能要看到時候編完後的數字是多少自己更動 另外在 server 上他是去 /usr/lib64 上找的 如果不知道是一個就先以 /usr/lib 為主 有問題再看他是說哪一個資料夾這樣XD ii. 再來先刪掉舊的 link: $ rm -f /usr/lib/libstdc++.so.6 iii. 然後 redirect link 到現在這個版本: $ ln -s /usr/lib/libstdc++.so.6.0.16 /usr/lib/libstdc++.so.6 8. 如果覺得 /tmp 裡的東西站著很礙眼這時候可以把它通通清空囉! 這樣就大功告成啦!! 之後可以用 $ gcc -v 確認 gcc 的版本 然後跑個測試程式看看會不會動囉! 要移除掉的話上面有些步驟就改成做 backup 而不是直接刪掉 然後把整個過程中多產生的檔案給刪了 再把修改過的檔案復原就可以了! References: 1. C++0x: http://en.wikipedia.org/wiki/C%2B%2B11 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.134.61
1F:→ shininglion:這篇文章值 821 P 幣... 02/22 00:15
※ 編輯: shininglion 來自: 220.133.134.61 (02/22 00:17)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP