黄聪:buffer overflow detected问题解决及gcc-4.1安装
報錯:*** buffer overflow detected ***:?
將ubuntu 9.04自帶的gcc-4.3.2替換成gcc-4.1.0。
出現(xiàn)這個報錯的背景很多,但根本是gcc版本過高或者過低,使用gcc-4.1即可解決這個問題。
gcc-4.1安裝辦法(轉(zhuǎn)載自http://www.cnblogs.com/njucslzh/archive/2010/06/04/1751703.html)
由于學(xué)習(xí)的原因,需要用到GCC 4.1.2,而Ubuntu10.04下默認的GCC版本是GCC 4.4.1,所以需要自己安裝低版本的GCC 4.1.2。通過學(xué)習(xí),總結(jié)安裝步驟如下。
首先下載所需的文件,我下載deb包,地址http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/。根據(jù)計算機情況和需要,下載文件如下:
?
cpp-4.1_4.1.2-27ubuntu1_i386.deb ?gcc-4.1-base_4.1.2-27ubuntu1_i386.deb
g++-4.1_4.1.2-27ubuntu1_i386.deb ?libstdc++6-4.1-dev_4.1.2-27ubuntu1_i386.deb
gcc-4.1_4.1.2-27ubuntu1_i386.deb
安 裝這些包,它們之間有依賴關(guān)系,如果順序不對會有提示。安裝命令是sudo dpkg -i XXX.deb,不用sudo不知道行不行,沒試。大概順序是第四個,第一個,第三個,第二個,第五個,但裝第二,五個時互相依賴,最后采用一次輸入兩個 文件,讓系統(tǒng)自己看著辦,通過。其實,后來我發(fā)現(xiàn)可以采用傻瓜的方法,如下,完全由系統(tǒng)自己決定, sudo dpkg -i *.deb [sudo] password for lzh:? (正在讀取數(shù)據(jù)庫 ... 系統(tǒng)當(dāng)前總共安裝有 139940 個文件和目錄。) 正預(yù)備替換 cpp-4.1 4.1.2-27ubuntu1 (使用 cpp-4.1_4.1.2-27ubuntu1_i386.deb) ... 正在解壓縮將用于更替的包文件 cpp-4.1 ... 正預(yù)備替換 g++-4.1 4.1.2-24ubuntu1 (使用 g++-4.1_4.1.2-27ubuntu1_i386.deb) ... 正在解壓縮將用于更替的包文件 g++-4.1 ... 正預(yù)備替換 gcc-4.1 4.1.2-27ubuntu1 (使用 gcc-4.1_4.1.2-27ubuntu1_i386.deb) ... 正在解壓縮將用于更替的包文件 gcc-4.1 ... 正預(yù)備替換 gcc-4.1-base 4.1.2-27ubuntu1 (使用 gcc-4.1-base_4.1.2-27ubuntu1_i386.deb) ... 正在解壓縮將用于更替的包文件 gcc-4.1-base ... 正預(yù)備替換 libstdc++6-4.1-dev 4.1.2-27ubuntu1 (使用 libstdc++6-4.1-dev_4.1.2-27ubuntu1_i386.deb) ... 正在解壓縮將用于更替的包文件 libstdc++6-4.1-dev ... 正在設(shè)置 gcc-4.1-base (4.1.2-27ubuntu1) ... 正在設(shè)置 cpp-4.1 (4.1.2-27ubuntu1) ... 正在處理用于 man-db 的觸發(fā)器... 正在設(shè)置 gcc-4.1 (4.1.2-27ubuntu1) ... 正在設(shè)置 libstdc++6-4.1-dev (4.1.2-27ubuntu1) ... 正在設(shè)置 g++-4.1 (4.1.2-27ubuntu1) ... 這時,系統(tǒng)里面會有2個版本的GCC,缺省的還是原來默認的GCC 4.4.1,我們可以更改系統(tǒng)的默認配置。查看GCC的版本信息 ls /usr/bin/gcc* /usr/bin/gcc ?/usr/bin/gcc-4.1 ?/usr/bin/gcc-4.4 ?/usr/bin/gccbug-4.1可以看到,已經(jīng)有了2個版本的GCC,安裝成功。
?
增加GCC 4.1.2和GCC 4.4.1可選項
?
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40
update-alternatives: 使用 /usr/bin/gcc-4.1 來提供 /usr/bin/gcc (gcc),于 自動模式 中。 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 30 update-alternatives: 使用 /usr/bin/gcc-4.4 來提供 /usr/bin/gcc (gcc),于 自動模式 中。 設(shè)置默認編譯器,如下: sudo update-alternatives --config gcc? 有 2 個選項可用于替換項 gcc (提供 /usr/bin/gcc)。 選擇 ? ? ? 路徑 ? ? ? ? ? ?優(yōu)先級 ?狀態(tài) ------------------------------------------------------------ * 0 ? ? ? ? ? ?/usr/bin/gcc-4.4 ? 40 ? ? ? ?自動模式 1 ? ? ? ? ? ?/usr/bin/gcc-4.1 ? 30 ? ? ? ?手動模式 2 ? ? ? ? ? ?/usr/bin/gcc-4.4 ? 40 ? ? ? ?手動模式 要維持當(dāng)前值[*]請按回車鍵,或者鍵入選擇的編號:1 sudo update-alternatives --config gcc? 有 2 個選項可用于替換項 gcc (提供 /usr/bin/gcc)。 選擇 ? ? ? 路徑 ? ? ? ? ? ?優(yōu)先級 ?狀態(tài) ------------------------------------------------------------ 0 ? ? ? ? ? ?/usr/bin/gcc-4.4 ? 40 ? ? ? ?自動模式 * 1 ? ? ? ? ? ?/usr/bin/gcc-4.1 ? 30 ? ? ? ?手動模式 2 ? ? ? ? ? ?/usr/bin/gcc-4.4 ? 40 ? ? ? ?手動模式 要維持當(dāng)前值[*]請按回車鍵,或者鍵入選擇的編號: 這樣就完成了安裝和默認項配置,于是可以默認使用GCC 4.1.2編譯程序了。其它版本的類似。。。再次編譯你的程序,執(zhí)行時buffer overflow detected問題解決了。
總結(jié)
以上是生活随笔為你收集整理的黄聪:buffer overflow detected问题解决及gcc-4.1安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网规:第1章计算机网络原理-1.6广域网
- 下一篇: querySelector用法改进