buffer overflow detected问题解决及gcc-4.1安装
2011-07-22 11:38
916 查看
报错:***
buffer overflow detected ***:
将ubuntu 9.04自带的gcc-4.3.2替换成gcc-4.1.0。
出现这个报错的背景很多,但根本是gcc版本过高或者过低,使用gcc-4.1即可解决这个问题。
gcc-4.1安装办法(转载自http://www.cnblogs.com/njucslzh/archive/2010/06/04/1751703.html)
由于学习的原因,需要用到GCC 4.1.2,而Ubuntu10.04下默认的GCC版本是GCC 4.4.1,所以需要自己安装低版本的GCC 4.1.2。通过学习,总结安装步骤如下。
首先下载所需的文件,我下载deb包,地址http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/。根据计算机情况和需要,下载文件如下:
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
安装这些包,它们之间有依赖关系,如果顺序不对会有提示。安装命令是sudo dpkg -i XXX.deb,不用sudo不知道行不行,没试。大概顺序是第四个,第一个,第三个,第二个,第五个,但装第二,五个时互相依赖,最后采用一次输入两个文件,让系统自己看着办,通过。其实,后来我发现可以采用傻瓜的方法,如下,完全由系统自己决定,
sudo dpkg -i *.deb
[sudo] password for lzh:
(正在读取数据库 ... 系统当前总共安装有 139940 个文件和目录。)
正预备替换 cpp-4.1 4.1.2-27ubuntu1 (使用 cpp-4.1_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 cpp-4.1 ...
正预备替换 g++-4.1 4.1.2-24ubuntu1 (使用 g++-4.1_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 g++-4.1 ...
正预备替换 gcc-4.1 4.1.2-27ubuntu1 (使用 gcc-4.1_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 gcc-4.1 ...
正预备替换 gcc-4.1-base 4.1.2-27ubuntu1 (使用 gcc-4.1-base_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 gcc-4.1-base ...
正预备替换 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 ...
正在设置 gcc-4.1-base (4.1.2-27ubuntu1) ...
正在设置 cpp-4.1 (4.1.2-27ubuntu1) ...
正在处理用于 man-db 的触发器...
正在设置 gcc-4.1 (4.1.2-27ubuntu1) ...
正在设置 libstdc++6-4.1-dev (4.1.2-27ubuntu1) ...
正在设置 g++-4.1 (4.1.2-27ubuntu1) ...
这时,系统里面会有2个版本的GCC,缺省的还是原来默认的GCC 4.4.1,我们可以更改系统的默认配置。查看GCC的版本信息
ls /usr/bin/gcc*
/usr/bin/gcc /usr/bin/gcc-4.1 /usr/bin/gcc-4.4 /usr/bin/gccbug-4.1
可以看到,已经有了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),于 自动模式 中。
设置默认编译器,如下:
sudo update-alternatives --config gcc
有 2 个选项可用于替换项 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-4.4 40 自动模式
1 /usr/bin/gcc-4.1 30 手动模式
2 /usr/bin/gcc-4.4 40 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:1
sudo update-alternatives --config gcc
有 2 个选项可用于替换项 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/bin/gcc-4.4 40 自动模式
* 1 /usr/bin/gcc-4.1 30 手动模式
2 /usr/bin/gcc-4.4 40 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:
这样就完成了安装和默认项配置,于是可以默认使用GCC 4.1.2编译程序了。其它版本的类似。。。
再次编译你的程序,执行时buffer overflow detected问题解决了。
buffer overflow detected ***:
将ubuntu 9.04自带的gcc-4.3.2替换成gcc-4.1.0。
出现这个报错的背景很多,但根本是gcc版本过高或者过低,使用gcc-4.1即可解决这个问题。
gcc-4.1安装办法(转载自http://www.cnblogs.com/njucslzh/archive/2010/06/04/1751703.html)
由于学习的原因,需要用到GCC 4.1.2,而Ubuntu10.04下默认的GCC版本是GCC 4.4.1,所以需要自己安装低版本的GCC 4.1.2。通过学习,总结安装步骤如下。
首先下载所需的文件,我下载deb包,地址http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/。根据计算机情况和需要,下载文件如下:
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
安装这些包,它们之间有依赖关系,如果顺序不对会有提示。安装命令是sudo dpkg -i XXX.deb,不用sudo不知道行不行,没试。大概顺序是第四个,第一个,第三个,第二个,第五个,但装第二,五个时互相依赖,最后采用一次输入两个文件,让系统自己看着办,通过。其实,后来我发现可以采用傻瓜的方法,如下,完全由系统自己决定,
sudo dpkg -i *.deb
[sudo] password for lzh:
(正在读取数据库 ... 系统当前总共安装有 139940 个文件和目录。)
正预备替换 cpp-4.1 4.1.2-27ubuntu1 (使用 cpp-4.1_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 cpp-4.1 ...
正预备替换 g++-4.1 4.1.2-24ubuntu1 (使用 g++-4.1_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 g++-4.1 ...
正预备替换 gcc-4.1 4.1.2-27ubuntu1 (使用 gcc-4.1_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 gcc-4.1 ...
正预备替换 gcc-4.1-base 4.1.2-27ubuntu1 (使用 gcc-4.1-base_4.1.2-27ubuntu1_i386.deb) ...
正在解压缩将用于更替的包文件 gcc-4.1-base ...
正预备替换 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 ...
正在设置 gcc-4.1-base (4.1.2-27ubuntu1) ...
正在设置 cpp-4.1 (4.1.2-27ubuntu1) ...
正在处理用于 man-db 的触发器...
正在设置 gcc-4.1 (4.1.2-27ubuntu1) ...
正在设置 libstdc++6-4.1-dev (4.1.2-27ubuntu1) ...
正在设置 g++-4.1 (4.1.2-27ubuntu1) ...
这时,系统里面会有2个版本的GCC,缺省的还是原来默认的GCC 4.4.1,我们可以更改系统的默认配置。查看GCC的版本信息
ls /usr/bin/gcc*
/usr/bin/gcc /usr/bin/gcc-4.1 /usr/bin/gcc-4.4 /usr/bin/gccbug-4.1
可以看到,已经有了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),于 自动模式 中。
设置默认编译器,如下:
sudo update-alternatives --config gcc
有 2 个选项可用于替换项 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-4.4 40 自动模式
1 /usr/bin/gcc-4.1 30 手动模式
2 /usr/bin/gcc-4.4 40 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:1
sudo update-alternatives --config gcc
有 2 个选项可用于替换项 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
0 /usr/bin/gcc-4.4 40 自动模式
* 1 /usr/bin/gcc-4.1 30 手动模式
2 /usr/bin/gcc-4.4 40 手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:
这样就完成了安装和默认项配置,于是可以默认使用GCC 4.1.2编译程序了。其它版本的类似。。。
再次编译你的程序,执行时buffer overflow detected问题解决了。
相关文章推荐
- 黄聪:buffer overflow detected问题解决及gcc-4.1安装
- buffer overflow detected问题解决及gcc-4.1安装
- RedHat9下安装gcc时可能遇到的问题及解决
- RedHat安装Tesseract方式以及遇到升级GCC时遇到的问题和解决办法
- "Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace"问题解决
- voice channel 0 circular buffer overflow问题的解决办法GlobalOffensive,CSGO
- ubuntu 16.04 的64位 安装arm-none-linux-gnueabi-gcc的步骤和问题解决
- Linux下安装gcc遇到的问题,待解决
- redhad安装gcc问题---解决依赖问题
- 安装GCC 问题解决
- Fedora 15 降级安装GCC-4.5.3 全过程以及遇到的问题和解决办法总结
- VMware vSphere Client 4.1安装win8 or win8.1失败问题解决
- redhad安装gcc问题---解决依赖问题
- ubuntu 16.04 的64位 安装arm-none-linux-gnueabi-gcc的步骤和问题解决
- 解决XCode 7 AddressSanitizer: heap-buffer-overflow的问题
- 应用程序运行***buffer overflow detected*** terminated Aborted异常退出问题
- 困扰问题Unable to execute dex: java.nio.BufferOverflowException. 解决方法
- 关于安装linux redhat后无法使用yum命令安装gcc-c++问题的解决过程
- Fedora8安装VMware-tools 解决gcc和kernel缺失的问题
- centOS6.X安装tfs解决gcc高版本报错问题