ubuntu 升级gcc 到4.7

本文介绍了解决从Linux3.4内核移植到2.6内核时遇到的编译错误undefined referenceto `__sync_val_compare_and_swap_8'的方法。通过升级gcc版本并处理依赖关系问题,成功解决了该问题。

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

最近因为项目需要,要把一套代码从Linux3.4内核移动到2.6内核下运行。在源码编译的时候就出现了各种情况了,其中就遇到了问题:

undefined reference to `__sync_val_compare_and_swap_8'

分析之后,发现该问题的出现是由于2.6内核版本的ubuntu,编译器版本过低。

解决问题:升级gcc

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7

安装过程可能会提示:

下列软件包有未满足的依赖关系:
  gcc-4.7: 依赖: gcc-4.7-base (= 4.7.3-1ubuntu1~10.04.2) 但是它将不会被安装
           依赖: cpp-4.7 (= 4.7.3-1ubuntu1~10.04.2) 但是它将不会被安装
           依赖: libgcc-4.7-dev (= 4.7.3-1ubuntu1~10.04.2) 但是它将不会被安装

此时需要先安装以上的依赖文件包,如gcc-4.7-base,这里稍微等待一段时间。

sudo apt-get install gcc-4.7-base 

安装完成之后,可以查看gcc版本

gcc --version

若显示版本依然是旧版本号,并没有把4.7版本设置为默认的gcc的链接文件,则进入/usr/bin/

把gcc 这个文件删除,建立链接到gcc-4.7(g++类似)

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 gcc


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值