Linux下Ubuntu20.04编译安装GCC-4.8.5

本文档详细介绍了如何在Ubuntu 20.04上通过源码编译安装GCC-4.8.5。首先,通过wget下载GCC-4.8.5的压缩文件并解压,然后解决编译过程中遇到的bug。接着,安装必要的依赖,如gmp、mpfr和mpc。在新建的编译目录中配置和编译源码,最后执行make install进行安装。整个过程适合那些无法通过apt直接安装GCC-4.8.5的用户参考。

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

下载安装GCC4.8.5

我的电脑是ubuntu20.04,尝试了在更换源的基础上利用apt直接安装GCC-4.8,然而一直提示找不到包。没办法,不想折腾了,用源码安装吧,顺便记录下过程。

下载GCC原始压缩文件

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2

解压

tar -jxvf  gcc-4.8.5.tar.bz2

修改bug

sed -i -e 's/__attribute__/\/\/__attribute__/g' gcc-4.8.5/gcc/cp/cfns.h
sed -i 's/struct ucontext/ucontext_t/g' gcc-4.8.5/libgcc/config/****/linux-unwind.h

其中,***为自己的设备号。

安装依赖三大件,会自动顺序安装gmp、mpfr、mpc

gcc-4.8.5/contrib/download_prerequisites

或者

sudo apt install make wget git gcc g++ lhasa libgmp-dev libmpfr-dev libmpc-dev flex bison gettext texinfo ncurses-dev autoconf rsync

建立新的编译目录

mkdir gcc-4.8.5-build
cd gcc-4.8.5-build

开始编译安装

$PWD/../gcc-4.8.5/configure --enable-languages=c,c++ --prefix=/usr/local/gcc-4.8.5 --enable-shared --enable-plugin --program-suffix=-4.8.5 --disable-multilib
make MAKEINFO="makeinfo --force" -j
//安装
sudo make install

参考

  1. https://zhouyuqian.com/2021/11/30/build-install-gcc-4-8-5/
  2. https://www.icode9.com/content-3-1202280.html
  3. https://www.frank.fyi/archives/336_gcc-compile-error/
### 配置 GCC 编译器于 Ubuntu Linux #### 更新包列表并安装特定版本的 GCC 为了确保系统的软件包列表是最新的,在执行任何安装操作之前应当先更新它。这可以通过运行命令 `sudo apt update` 来完成[^1]。 对于想要安装GCC 8.3 这样的特定版本的情况,可以利用 `ubuntu-toolchain-r/test` PPA 提供的支持来实现这一目标。该PPA包含了多个不同版本的GCC编译工具链,适用于Ubuntu 18.04 LTS以及20.04 LTS等发行版。通过这条途径安装所需的GCC版本前,除了上述提到的更新源外,还需要添加相应的PPA仓库地址,并指定要安装的确切版本号。 ```bash sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update sudo apt install gcc-8 g++-8 ``` #### 设置默认使用的 GCC 版本 当系统中有多个版本共存时,默认情况下可能会调用最新或者最先被设置的那个版本作为默认选项。如果希望改变当前终端会话中的默认GCC版本而不影响全局设定的话,则可以在shell环境中临时更改环境变量;而永久性的修改则需编辑 `/etc/environment` 文件或是创建一个新的替代链接文件指向所期望采用的具体版本二进制文件位置: ```bash # 创建软连接以切换默认版本 (假设已存在更高版本) sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 80 \ --slave /usr/bin/g++ g++ /usr/bin/g++-8 ``` #### 安装必要的构建依赖项 在某些场景下,可能还会涉及到其他开发库或工具的需求,比如构建加密功能支持的应用程序就需要 OpenSSL 库头文件(`libssl-dev`)以及其他网络通信相关的组件(`libcurl4-gnutls-dev`, `libexpat1-dev`)等等。这些都可以借助APT包管理系统一次性获取到位[^2]: ```bash sudo apt-get install build-essential libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip ``` #### 自定义配置过程(可选) 如果有特殊需求,例如不希望通过引导阶段来自检新旧两个版本间是否存在兼容性差异等问题,那么可以在configure脚本参数里加上`--disable-bootstrap`标志位来进行简化处理[^3]。相反地,若出于测试目的考虑跨平台移植性等因素,则应启用此特性以便更好地验证整个编译流程能否顺利工作。 #### 构建从源码开始(针对更低版本如4.8.5) 如果是打算基于更早之前的稳定分支(例如GCC 4.8.5),通常建议直接下载官方发布的tarball压缩包形式发布物,解压之后按照README文档指示依次执行如下指令序列即可完成本地化部署[^5]: ```bash cd gcc-4.8.5/ ./contrib/download_prerequisites mkdir objdir && cd objdir ../configure --prefix=/opt/gcc-4.8.5 --enable-languages=c,c++ make -j$(nproc) sudo make install ``` 以上就是关于如何在Ubuntu Linux平台上配置GCC编译器的相关指导说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值