所以我从 gcc ftp 服务器下载了 gcc-7.1.0 源存档,并进行了如下配置:
../configure --enable-languages=c --disable-multilib
Run Code Online (Sandbox Code Playgroud)
因为子目录是我提取源代码的地方。当前目录名为“objdir”。
现在,如果我make -j 2最初运行大约 5 分钟,现在运行大约 1 ~ 2 分钟,当我只修改项目中的单个源文件时 -CC1本质上我们正在编译的内容是创建/更新的,objdir/gcc总大小约为 110MB - 一个完全工作的但大约 3 或 4 秒后,这个文件被移入objdir/prev-gcc,然后我等待的时间不超过 20 分钟。
我想我会在创建目录后继续终止 make 进程prev-gcc并使用那里的内容,但我想知道这个怪癖的原因是什么。就像 make 过程将完全工作的已编译二进制文件移动到objdir/prev-gcc然后继续做一些看起来很长(我记得等待一整天才能完成一次)的事情的原因是什么,或者我在这里遗漏了一些明显的东西。
如果您想禁用正常的 gcc 3 阶段引导过程(用自身重建编译器来测试事物),请使用--disable-bootstrap作为配置选项。这会将 Makefile 配置为仅构建 gcc 一次。
至于默认(引导)进程正在做什么:
如果最后一次检查失败,则说明构建过程出现问题。