gcc降版本

在Ubuntu新版本中,由于GCC版本过高(如4.6.1),可能会引发编译错误,提示_FORTIFY_SOURCE重新定义。解决方法是安装GCC 4.4,然后将默认GCC链接指向GCC 4.4。通过`sudo apt-get install gcc-4.4 g++-4.4`安装,使用`sudo mv gcc gcc.bak`和`sudo ln -s gcc-4.4 gcc`以及相同步骤替换g++,最后验证GCC版本为4.4即可正常编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你的ubuntu是最新的或者比较新的版本,那么在编译过程中,会出现:


  1. <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]   
  2. <built-in>:0:0: note: this is the location of the previous definition   
  3. cc1plus: all warnings being treated as errors  

这样的错误,这个错误引起的原因在于gcc的版本太高了,gcc -v 可以看见是4.6.1的;

解决方法为:安装gcc4.4的


  1. sudo apt-get install gcc-4.4  
  2. sudo apt-get install g++-4.4  

安装完成后需要将原gcc替换成gcc4.4的:

进入/usr/bin,用ls -l gcc* 可以看到:


  1. lrwxrwxrwx 1 root root      7 2011-10-29 09:11 gcc -> gcc-4.6  
  2. -rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4  
  3. -rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6  

通过一下命令实现替换:


  1. sudo mv gcc gcc.bak   
  2. sudo ln -s gcc-4.4 gcc  

对于g++同理:


  1. lrwxrwxrwx 1 root root      7 2011-08-14 15:17 g++ -> g++-4.6  
  2. -rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4  
  3. -rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6  
  4.   
  5. /usr/bin$ sudo mv g++ g++.bak   
  6. /usr/bin$ sudo ln -s g++-4.4 g++  

现在可以通过gcc -v查看版本信息了,为gcc-4.4就正确了,可以编译了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值