我正在寻找一种在 Windows 上编译爱好者编写的内核和微操作系统的方法,到目前为止,我在所有论坛和其他此类地方找到的主要是“构建交叉编译器”的建议。不幸的是,我现在缺乏相关知识,所以有人可以告诉我如何使用 MinGW 编译 GCC/Binutils 以在 64 位 Windows 7 安装上运行吗?感谢您抽出时间,埃尔克林。
最佳答案
将 gcc 编译为交叉编译器应该相当简单,但我从未在 Windows 上尝试过。
要构建为交叉编译器,gcc 需要配置 --host=<host_os>
和--target=<target_os
哪里<host_os>
是编译器将运行的平台(在您的情况下是 Windows)和 <target_os>
是您的目标平台。正如你所说,它是一个业余爱好者操作系统,它可能是 1586-elf
或类似的。
http://wiki.osdev.org/GCC_Cross-Compiler有更深入的信息。尝试一下该页面,看看是否有帮助。在 Windows 上使用此方法应该像安装带有 GCC 的 Cygwin 以及下载和构建 binutils 和 gcc 一样简单。
编辑
通过使用 objcopy
解决了这个问题剥离使用 --nostdlib
编译的 PE 文件。如果您想要的只是一个平面二进制文件,那么这可能是您的一个选择。
关于编译交叉编译器来编译内核,使用MinGW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371246/