随笔 - 10  文章 - 0  评论 - 0  阅读 - 2116

在Ubuntu 20.04中编译gcc-14.2.0随笔记录

编译环境

通过镜像安装的Ubuntu 20.04-amd64系统,未安装任何软件和进行其他配置

为避免可能存在的问题,详细记录在该系统中进行了的操作:

  1. 更换apt镜像源为国科大镜像源
  2. 通过apt安装build-essential、gcc、g++、gcc-10、g++-10(为什么要下两次gcc?可以只安装gcc-10,但是需要自行在/usr/bin中创建软连接/usr/bin/gcc 指向 gcc-10。g++同理)
  3. 查看/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 -vg++ -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
待解决...

posted on   TN-mo  阅读(346)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示