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灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP