如何将C代码编译为原始的无操作二进制文件?

考虑到C是一种系统编程语言,如何将C代码编译为原始x86机器代码,而这些代码可以在没有操作系统的情况下调用? (IE:您可以假设我有一个引导扇区,它将原始机器代码从磁盘加载到内存中,然后直接跳转到第一条指令).

现在,对于奖励积分:理想情况下,我想使用Visual Studio 2010的编译器进行编译,因为我已经得到了它.如果做不到这一点,那么完成任务的最佳方法是什么,而不必安装一堆依赖项或者必须在整个系统中进行大规模的配置更改?我将在Windows 7上进行编译.

最佳答案 通常,你没有.相反,您可以正常编译代码,然后(使用链接器或其他工具)从目标文件中提取原始二进制文件.

例如,在Linux上,您可以使用objcopy工具将目标文件复制到原始二进制文件.

$objcopy -O binary object.elf object.binary
点赞