【发布时间】:2016-08-16 03:13:32
【问题描述】:
我目前正在制作一个操作系统,当我尝试添加 C 支持时,我遇到了一些问题......在汇编中,我操作系统上的每个程序都以 ORG 32768 开头(NASM 编译器预处理器指令用于抵消代码的来源),但我似乎找不到任何方法可以使用 C 的 GCC 编译器来做到这一点。所以,我的问题是,如何在 C 中实现这一点(抵消代码的来源)使用 GCC? (是的,我在问之前已经查过了,甚至检查了GNU's official GCC's C preprocessor documentation)
【问题讨论】:
-
您可以使用链接器脚本设置代码的去向,但我不知道有什么方法可以在 C 中将其存档。
-
您不能从 C 中执行此操作。如果您将二进制格式与 NASM 一起使用,那么您将获得相同的效果,您需要使用 MikeCAT 所说的链接器脚本。您还需要编写自己的 C 启动代码,然后如果您想使用它,则需要移植 C 库。
-
@MikeCAT 谢谢,我以前没有手工制作过自己的链接器脚本(不需要,我用汇编编写了内核),但我相信我可以通过精彩的谷歌。
-
@RossRidge 我已经移植了足够多的 C 库来用 C 编写一个基本的 hello world 程序,但我很欣赏这个建议,并且通过 C 启动代码,你到底指的是什么?
-
初始化C库然后调用
main的代码。这是 C 程序第一次开始执行的地方。