我无法使用以下方法在Mac OS下编译这段汇编代码:
.text
.global _start
_start:
. = _start + 510
.byte 0x55
.byte 0xaa
ld –Ttext 0x7c00 --oformat=binary test.o –o test.bin
结果终端中的指令:
ld: file not found: –Ttext
你能告诉我为什么这不起作用,但是如果有这个指令的替代品可以用所需的格式进行编译。 谢谢大家。
答案 0 :(得分:3)
–Ttext
中的第一个字符是–
U + 2013(EN DASH)。
您需要使用-
U + 002D(HYPHEN-MINUS)。
答案 1 :(得分:-1)
我发现了这个相关问题GNU Linker equivalent command in OS X
并且OP做了很多工作来找到解决方案:
gobjcopy -j .text --set-start 0x7c00 -O binary source.o boot.bin
-
更新:请参阅以下评论。
TLDR:不要使用上述内容。相反,构建(或获取)通用ELF binutils,它将允许您访问基于GNU工具链的LD版本。该版本的LD支持适当的链接器脚本,并且使用./ / p>进行OS开发更容易