ubuntu 升级gcc 到4.7

时间:2022-02-07 02:24:21

最近因为项目需要,要把一套代码从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