4

我正在尝试编译我们在 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).

这是 那个文件的源代码,这里是makefile

因此,如果有人知道该怎么做,我将不胜感激:)

4

2 回答 2

5

当您使用 OS/X 进行编译时,您将使用 X-Code 的旧版本as. 这意味着您将不得不忍受一些稍旧的语法。这个其他答案涵盖了其中一些问题。

至少你需要.global.globl. 您可以删除.extern,因为默认情况下所有符号都被视为外部符号。对于部分定义,您应该查阅gas手册;我相信汇编程序要求您定义节标志。

于 2012-07-16T14:44:23.077 回答
1

我认为它应该是“.globl”而不是“.global”

于 2012-11-08T19:04:15.310 回答