请问 Mac 平台怎么从c源程序生成裸机可执行的纯净二进制文件?

最近在学操作系统,需要用C写,然后生成裸机可运行的二进制文件,试过了 objcopy ,报错说file format not recognized,ld 也不太会用

阅读 1.9k
2 个回答
✓ 已被采纳

要从C源代码生成裸机可执行的纯净二进制文件,你需要使用编译器将源代码编译为目标文件,然后使用链接器将目标文件链接为可执行文件。在Mac上,你可以使用gcc编译器和ld链接器来完成此操作。以下是一些步骤:

打开终端并导航到包含您的源代码的目录。

使用下面的命令将源代码编译为目标文件:

gcc -c your_file.c -o your_file.o

这就可以生成一个名为your_file.o的目标文件。

使用下面的命令将目标文件链接为可执行文件:

ld -static -o your_executable your_file.o

生成一个名为your_executable的可执行文件。

如果你的源代码依赖于其他库,就需要在编译和链接过程中指定这些库。例如你的源代码使用了数学库,则需要在编译和链接过程中指定该库:

gcc -c your_file.c -o your_file.o -lm
ld -static -o your_executable your_file.o -lm

你是在写任务加载器吧,你这个路线有点歪。C语言编译到的是ELF格式,这个你学一下就行,解析它很简单的,不需要纯二进制。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题