在Ubuntu 20.04中编译gcc-14.2.0随笔记录
编译环境
通过镜像安装的Ubuntu 20.04-amd64系统,未安装任何软件和进行其他配置
为避免可能存在的问题,详细记录在该系统中进行了的操作:
- 更换apt镜像源为国科大镜像源
- 通过apt安装build-essential、gcc、g++、gcc-10、g++-10(为什么要下两次gcc?可以只安装gcc-10,但是需要自行在/usr/bin中创建软连接/usr/bin/gcc 指向 gcc-10。g++同理)
- 查看/usr/bin/gcc和/usr/bin/g++的指向,默认情况下是:
lrwxrwxrwx 1 root root 15 Dec 2 03:40 /usr/bin/gcc -> /usr/bin/gcc-9*
lrwxrwxrwx 1 root root 15 Dec 2 03:41 /usr/bin/g++ -> /usr/bin/g++-9*
将其修改为指向gcc-10、g++-10:
$ sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
$ sudo ln -sf /usr/bin/g++-10 /usr/bin/g++
尝试输出版本号gcc -v
和g++ -v
,如果版本都是10.5.0即修改成功。
依赖下载
这里默认已经你拥有了gcc-14.2.0的源码,下面进行编译依赖的下载,此过程需要联网:
user@ubuntu:~/Desktop/gcc-14.2.0$ ./contrib/download_prerequisites
注意所处的路径,必须是在源码的最外层目录下执行。否则会提示"你必须在gcc源码目录的最外层运行该脚本":
error: You must run this script in the top-level GCC source directory
此处下载大约5~10分钟,取决于网速。
编译过程
首先创建一个输出文件夹build
,然后运行配置文件:
$ mkdir build && cd build
$ ../configure --enable-languages=c,c++ --enable-multilib
这里我们使用了--enable-multilib
用于启用64位和32位的程序,因此需要安装gcc-multilib
:
$ sudo apt install gcc-multilib
完成之后再进行make
错误处理
在我进行编译时产生了下面的报错,下面列出报错情况和解决方案:
1. cc1和cc1plus缺失
xgcc: fatal error: cannot execute ‘cc1’: posix_spawnp: No such file or directory
xgcc: fatal error: cannot execute ‘cc1plus’: posix_spawnp: No such file or directory
解决方案:
在/usr/中搜索cc1和cc1plus,下面是我得到的结果:
user@ubuntu:~/Desktop/gcc-14.2.0/build$ find /usr/ -name "*cc1*"
/usr/lib/gcc/x86_64-linux-gnu/9/cc1
/usr/lib/gcc/x86_64-linux-gnu/10/cc1
... # 忽略部分无关结果
user@ubuntu:~/Desktop/gcc-14.2.0/build$ find /usr/ -name "*cc1plus*"
/usr/lib/gcc/x86_64-linux-gnu/9/cc1plus
/usr/lib/gcc/x86_64-linux-gnu/10/cc1plus
这里我们分别找到了两个cc1和cc1plus,但是并不在/usr/bin中,所以我们需要创建一个软连接指向他们。
这里我们选择目标版本为10的cc1,即/usr/lib/gcc/x86_64-linux-gnu/10/cc1
和/usr/lib/gcc/x86_64-linux-gnu/10/cc1plus
然后创建软连接指向他们:
$ sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/10/cc1 /usr/bin/cc1
$ sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/10/cc1plus /usr/bin/cc1plus
即可成功解决该报错。
2. xgcc: error trying to exec 'cc1': posix_spawn: No such file or directory
待解决...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能