Porting GCC to your OS
Zhang3(讨论 | 贡献)2022年3月24日 (四) 08:31的版本 (创建页面,内容为“{{Rating|4}} {{In Progress}} * 阅读GCC交叉编译器。 * 制作一个特定于操作系统的工具链。 * 阅读自托管GCC交叉编译(Hosted GCC Cross-Compiler)。 * 有完备的 C Library。 GCC是相当可移植的,需要C标准库和POSIX的一些扩展。 例如,它需要fork和exec来运行汇编器和链接器。 你将需要一个C++标准库 (例如libst…”)
难度等级 |
---|
![]() 大师 |
- 阅读GCC交叉编译器。
- 制作一个特定于操作系统的工具链。
- 阅读自托管GCC交叉编译(Hosted GCC Cross-Compiler)。
- 有完备的 C Library。 GCC是相当可移植的,需要C标准库和POSIX的一些扩展。 例如,它需要fork和exec来运行汇编器和链接器。 你将需要一个C++标准库 (例如libstdc++),因为GCC现在是用 C++ 编写的。
- 使用交叉移植软件中的指令交叉编译libgmp、libmpc、libmpfr和其他依赖项。
- 同样交叉编译Binutils和GCC,但是传递特殊的配置选项--with-build-sysroot=/your/sysroot和--with-sysroot=/。 选项 --with-build-sysroot 选项在构建期间使用该sysroot,但最终程序不记录它。 --with-sysroot=/不应该被需要,或者应该被设置为空字符串,但是一些binutils/gcc版本有缺陷,所以还需要它,这有一个缺点,最终的工具链可能使用//foo而不是/foo。 你应该仅将这些选项传递给Binutils和GCC构建,其他一些包也有一个--with sysroot选项,但这不意味着你不应该使用libtool功能。
- 成为自托管系统并完成Bare Bones II。 恭喜你。