记录

下载
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz

解压 下载依赖

tar zxf gcc-4.8.5.tar.gz
cd gcc-4.8.5
./contrib/download_prerequisites

在gcc的同级 新建目录

cd ..
mkdir gcc-build

编译安装

cd gcc-build
../gcc-4.8.4/configure --prefix=/home/username/.local/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install

编译出错 接下来开始修改源码

1

cfns.gperf:101:1: error: 'const char* libc_name_p(const char*, unsigned int)' redeclared inline

参考网址
修改源码

cd ~/gcc-4.8.2/gcc/cp
vim Make-lang.in
# 然后参考网址修改 +表示新增 -表示删除
# 修改完保存退出 继续下一个文件

vim cfns.gperf
vim cfns.h
vim except.c

然后编译 出现以下错误

2

In file included from ../../../../libgcc/unwind-dw2.c:405:0:
./md-unwind-support.h: In function ‘x86_fallback_frame_state’:
./md-unwind-support.h:141:18: error: field ‘uc’ has incomplete typestruct ucontext uc;

cd ./x86_64-unknown-linux-gnu/libgcc/
vim md-unwind-support.h
在vim命令模式输入:61可直接定位到61行
在61行和141行将struct ucontext改成struct ucontext_t即可

3

version `CXXABI_1.3.8` not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.60)
cd ./x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/
rm -rf libstdc++.so.6
ln -snf /usr/lib/x86_64-linux-gnu/libstdc++.so.60  ./libstdc++.so.6

然后编译出现同样的错
继续修改

cd ./x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/
rm -rf libstdc++.so.6
ln -snf /usr/lib/x86_64-linux-gnu/libstdc++.so.6  ./libstdc++.so.6

这里非常奇怪 链接libstdc++.so.6有时会出错
链接libstdc++.so.60 有时也会出错
我是经过一轮修改链接莫名其妙成功了

4

../../../../gcc-4.8.2/libsanitizer/asan/asan_linux.cc: In function 'bool
__asan::AsanInterceptsSignal(int)':
../../../../gcc-4.8.2/libsanitizer/asan/asan_linux.cc:95:20: error: 'SIGSEGV'
was not declared in this scopereturn signum == SIGSEGV && flags()->handle_segv;

cd ../gcc-4.8.2/libsanitizer/asan
vim asan_linux.cc
添加头文件#include <signal.h>

这里顺便解决第5个错误
vim ../tsan/tsan_platform_linux.cc

__res_state *statp = (__res_state*)state;
修改为struct __res_state *statp = (struct __res_state*)state;

然后就是略微漫长的编译

make -j4

编译成功
make install

然后环境变量
vim ~/.bashrc

添加内容
export PATH="$HOME/.local/bin:$PATH"

保存退出
source ~/.bashrc

gcc --version
即可显示为对应版本

先做个记录
有空再补充

主要 !> 参考
其中涉及修改源码等操作
其他教程都会出错 需要修改源码才能编译成功
其中 链接libstdc++.so.6 这一步
在编译过程中
首次链接后编译还是出错
然后链接出错提示的文件
还是出错
这时候 再次链接libstdc++.so.6 编译成功!!!

查看usr/lib64/libstdc++.so.6

cd /usr/
这是若发现不存在lib64目录
则查看lib/x86_64-linux-gnu
要链接的文件就在此目录下

/usr/bin/ld: cannot find crt1.o: No such file or directory

若编译过程中出现/usr/bin/ld: cannot find crt1.o: No such file or directory错误
则应该是./configure时没有指定参数--disable-multilib
加入参数后重新./configure生成编译文件
编译通过

编译安装gcc-4.8.2(编译出错后修改源码 编译成功)相关推荐

  1. mysql5.5.8编译安装_Mysql应用linux下mysql 5.5.8 源码编译安装

    <MysqL应用linux下MysqL 5.5.8 源码编译安装>要点: 本文介绍了MysqL应用linux下MysqL 5.5.8 源码编译安装,希望对您有用.如果有疑问,可以联系我们. ...

  2. linux git编译安装目录,Linux(centos) 环境下如何源码编译安装git

    21运维原创,转载请注明出处. 最近线上要使用git进行代码发布和版本管理了,之前搞过,一直没有做记录.从今儿起开始记录这块. linux上(当前文章使用的是centos,ubuntu采用apt-ge ...

  3. Jar包反编译后修改源码再编译

    Jar包反编译后修改源码再编译 文章目录 Jar包反编译后修改源码再编译 1. 场景 2. 详细步骤 2.1 查看源码 2.2 生成源文件 2.3 构建项目 2.4 编译成jar包 3. 参考链接 1 ...

  4. python 源码编译 without_vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译(示例代码)...

    1 准备 CMake 官网 vcmi 源码 下载 QT5 with mingw 官网 Boost 源码1.55 下载 MSYS2 官网 2 安装 2.1 vcmi源码 目标路径 D:/vcmi/sou ...

  5. 机器人学习--AMCL导航包自己修改源码编译和调用方法

    说明 1: 使用的Ubuntu16.04 Linux系统: ROS kinetic版本: ROS及依赖库安装在 根目录下的 /opt/ros 官方的导航包已经被编译完成,源代码不在里面,源代码需要自己 ...

  6. 【转】在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1

    2019独角兽企业重金招聘Python工程师标准>>> 在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1  一.编译安装gcc 4.8.1 1. 安装gcc ...

  7. android源码编译出错的原因

    (1)gcc的版本过高,由于android源码编译要求为4.3,如果你的gcc版本为4.4,那你的编译可能会失败的!我的系统是ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格, ...

  8. Linux源码编译安装步骤及命令

    源码编译安装过程 RPM包:rpm -ivh yum install 源码包----开发工具---->可以执行的程序----->运行安装 • 主要优点 – 获得软件的最新版,及时修复bug ...

  9. 安装包没意思?带你手动下载OpenWrt源码编译安装!

    一.OpenWrt的代码管理工具 OpenWrt社区同时使用Subversion和Git两种工具来管理代码. 备注:OpenWrt的外围代码已经逐渐转到github提供的Git托管空间上,直到2016 ...

最新文章

  1. 百度智慧交通(东部赛区)比赛的通知
  2. 题目1206:字符串连接
  3. 【转】激活 ActiveX 控件
  4. python3精要(59)-转换
  5. Linux系统文件与目录权限管理
  6. WPF MVVM实例三
  7. 欲善其事,先利其器 | IDCF第6期DevOps案例研究回顾(附视频)
  8. Fragment的生命周期同一Activity下不同Fragment之间的通信
  9. 食品工程计算机辅助设计,食品工程CAD技术应用及实例
  10. vue-cli+webpack在生成的项目中使用bootstrap的方法
  11. 红米5 Plus刷开发版/小米手机刷开发版
  12. 错误隐藏学习手记(五)
  13. 如何把windows锁屏画面提取成JPG图像,并作为桌面壁纸
  14. matplotlib显示伪彩色图像及色度条
  15. 如何解决数组下标越界异常
  16. 设计模式 工厂模式 从卖肉夹馍说起
  17. C#异常处理try catch
  18. 电脑diy配件产品导购,装机硬件资讯
  19. 单一修改高程值lisp_浅谈AutoCAD中修改高程的四种方法
  20. RBAC权限管理设计思想

热门文章

  1. Win10 64位下 darknet YOLO V3配置,视频测试及结果保存
  2. matlab 图像基本矩阵,MATLAB基本的使用方法归纳(图像,矩阵及函数)
  3. CentOS下添加用户并且让用户获得root权限
  4. matlab算术运算
  5. PMBOK十大项目管理之十沟通管理学习复述
  6. 【WPS-Excel】一些操作整理中...
  7. 高等代数7.9-最小多项式
  8. iphone 11.0.3 计算机,iOS11.0.3正式版来了,iPhone用户不禁感叹:冰火两重天!
  9. HashMap1.8hash碰撞 和 扩容方法
  10. DH密钥交换算法的python实现——Diffie–Hellman key exchange