构建:make cycle¶
make cycle 是编译器的前置,并且至少构建三次 rtl 和编译器。
保证工作顺利的前提是使用该系列最新版的编译器 1。如果在构建 FPC 仓库时遇到问题,并且你没有使用最新版本编译器,请先使用最新发布的编译器。可以指定编译器的名称(见下文),因此建议以某个名称保存发布的编译器(我将在本教程中使用 ppcrel)。
make cycle 需要编译3次RTL和编译器:
第1次编译 RTL,由于我们只从构建编译器开始,因此必须先构建一个新的 RTL 才能链接程序。
第1次编译编译器,创建一个新的编译器,但是,新的编译器仍然由发布编译器编译,因此在此可执行文件中尚未激活更新的优化和更改。因此,必须重建 RTL 和编译器。
第2次编译RTL,因为我们要重建和……
第2次编译编译器。为了确保编译器是正确的(每次运行时将相同的程序编译为相同的可执行文件),编译 RTL 和编译器……
第3次编译 RTL……
第3次编译编译器,在构建编译后,对比第2个编译器和第3个编译器,确定它们是否相同。否则,将再次编译所有内容。(对于一些罕见的安全问题)
只需在编译器目录中键入 make cycle 即可运行整个过程。如果要使用备用编译器,请使用 PP=[full/path/to/]<编译器> 指定它。使用 PP= 选项时,请在 PATH 中使用编译器的绝对路径,而不是相对路径。使用相对路径通常不起作用,因为在编译过程中,make 程序将更改目录。如果你尝试在没有完整安装的情况下进行引导,有时需要指定FPC=[full/path/to/]<编译器>。
可以使用 OPT=<选项> 添加其它编译器选项,常用选项是打开行信息信息(-gl),并增加详细级别(-va)。因为-va产生一个 _lot_ 输出,所以将它传递给管道文件是明智的。
示例 2:
1 2 3 4 5 6 7 8 9 10 11 12 | # 转到编译器目录(unix下)
cd /fpc/fpc/compiler
# 转到Windows下的编译目录
cd /d d:\repo\fpc\compiler
# 执行 make cycle:
make cycle
# 在系统路径中搜索启动编译器 make cycle PP=ppcrel
# 使用带有(unix)绝对路径启动编译器
# 并启用行信息和调试
make cycle PP=/fpc/startcompilers/ppcrel OPT=gl
# 在此执行时将显示大量信息,并将其重定向到文件。
make cycle OPT= -va >cycle.log
|