【踩坑记】Ubuntu 20.04.6 LTS下编译安装gcc 4.4.0

简介: 【踩坑记】Ubuntu 20.04.6 LTS下编译安装gcc 4.4.0

目录
缺少依赖包
strsignal的类型冲突
参考
floor_log2、exact_log2函数重复定义
没有32位的库
x86_fallback_frame_state函数的info域
找不到ctri.o
找不到gmp.h
没有zip
编译libgcj.so时没有cxa_call_unexpected
Bootstrap comparison failure
warning: C++ style comments are not allowed in ISO C90
九九归真
缺少依赖包

安装依赖包gmp、mpfr

strsignal的类型冲突

export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu

参考
https://stackoverflow.com/questions/12255058/g-4-7-1-compilation-error-conflicting-types-for-strsignal

floor_log2、exact_log2函数重复定义

直接注释掉

没有32位的库

apt-get install gcc-multilib

../configure --prefix=/mao/install/gcc/ --disable-libgcj --disable-multilib --enable-languages=c,c++

x86_fallback_frame_state函数的info域

struct siginfo info; 改为 siginfo_t info;
struct ucontext uc 改为 struct ucontext_t uc

找不到ctri.o

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
如果LIBRARY_PATH有冒号

找不到gmp.h

找到gmp.h,拷贝到对应目录下

没有zip

安装zip

编译libgcj.so时没有cxa_call_unexpected

不要编译gcj
../configure --prefix=/mao/install/gcc/ --disable-libgcj --disable-multilib --enable-languages=c,c++

Bootstrap comparison failure

删掉构建目录,重新开始编译
{spa.wypdesign.com]
{spa.tech-aru.com]
{spa.jiacaizhaipei.com]
{spa.tsjzgb.com]
{spa.neihanpuzi.com]
{spa.xborderdesk.com]

warning: C++ style comments are not allowed in ISO C90
ISO C90 标准仅支持 C 风格的注释,也就是 / ... /,而不允许 // 这种 C++ 风格的单行注释。

在编译时,使用 -std=c99(或者 -std=gnu99,后者包含 GNU 扩展)来启用 C99 标准支持,从而允许使用 // 注释:
./configure CFLAGS='-std=c99' CXXFLAGS='-std=c99'

九九归真

相关文章
|
5月前
|
Kubernetes Ubuntu 应用服务中间件
在Ubuntu22.04 LTS上搭建Kubernetes集群
在Ubuntu22.04.4上安装Kubernetes v1.28.7,步骤超详细
1743 2
在Ubuntu22.04 LTS上搭建Kubernetes集群
|
4天前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
24 3
|
2月前
|
Ubuntu 开发者 Python
|
1月前
|
存储 Kubernetes Ubuntu
Ubuntu 22.04LTS版本二进制部署K8S 1.30+版本
这篇文章详细介绍了在Ubuntu 22.04 LTS系统上使用VMware Fusion虚拟化软件部署Kubernetes 1.30+版本的完整过程,包括环境准备、安装containerd、配置etcd、生成证书、部署高可用组件、启动Kubernetes核心组件以及网络插件的部署和故障排查。
89 4
|
1月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
80 3
|
1月前
|
Ubuntu 开发工具 虚拟化
MacOS系统基于VMware Fusion配置Ubuntu 22.04LTS环境
这篇文章介绍了如何在MacOS系统上使用VMware Fusion虚拟化软件配置Ubuntu 22.04 LTS环境,包括自定义VMware Fusion网段、Ubuntu系统安装、配置root用户登录、设置静态IP地址、修改默认网卡名称、配置PS1变量、设置登录界面为字符界面、修改软件源和进行vim基础优化等步骤。
156 2
|
2月前
|
Ubuntu 安全 Linux
Windows——安装Ubuntu 18.04 LTS
Windows——安装Ubuntu 18.04 LTS
47 1
Windows——安装Ubuntu 18.04 LTS
|
3月前
|
监控 Ubuntu 安全
|
2月前
|
Ubuntu Linux 开发工具
Windows11 WSL2 Ubuntu编译安装perf工具
Windows11 WSL2 Ubuntu编译安装perf工具
84 0
|
3月前
|
Ubuntu 安全
什么是Ubuntu LTS?与常规版本的区别
Ubuntu LTS和常规版本的主要区别在于支持周期和稳定性。由于LTS版本的支持周期长,更新周期慢,因此它更加稳定,更适合需要长期稳定运行环境的用户或企业使用,如服务器或者企业桌面环境。而常规版本则更频繁地提供新特性和更新,更适合需要最新功能和软件的用户。
312 0