未知的伪操作:.global

Dab*_*ius 4 macos assembly

我正在尝试编译我们在OS类上获得的简单操作系统代码.它在Ubuntu下工作正常,但我想在OS X上编译它.我得到的错误是:

[compiling] arch/i386/arch/startup.S ...
arch/i386/arch/startup.S:8:Unknown pseudo-op: .extern
arch/i386/arch/startup.S:8:Rest of line ignored. 1st junk character valued 107 (k).
arch/i386/arch/startup.S:11:Expected comma after segment-name
arch/i386/arch/startup.S:13:Unknown pseudo-op: .global
arch/i386/arch/startup.S:13:Rest of line ignored. 1st junk character valued 97 (a).
Run Code Online (Sandbox Code Playgroud)

这是该文件源代码,这makefile

所以如果有人知道该怎么做我会很感激:)

jle*_*ahy 5

当您使用OS/X进行编译时,您将使用X-Code的古老版本as.这意味着您将不得不忍受一些稍微陈旧的语法.这对方的回答涵盖了其中的一些问题.

在最起码你将需要更换.global使用.globl.您可以删除,.extern因为默认情况下所有符号都被视为外部符号.有关章节定义,请参阅gas手册 ; 我相信汇编程序要求你定义节标志.