2012-05-09 73 views
4

我想編譯一個簡單的操作系統代碼,我們得到的操作系統類。它工作正常,在Ubuntu下,但我想編譯它在OS X上我得到的錯誤是:未知的僞操作:.global

[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). 

這是 source code of that file,這裏是makefile

因此,如果人有一個想法該怎麼做我將不勝感激:)

+0

你使用什麼編譯器? – trojanfoe

+0

@trojanfoe他的makefile文件說他使用'gcc' –

+0

@PavanManjunath它雖然沒有告訴我版本。 – trojanfoe

回答

5

當你使用OS/X編譯時,你將使用X-Code的古代版本as。這意味着你必須忍受一些稍微老一點的語法。這other answer涵蓋了一些這些問題。

至少你需要用.globl替換.global。您可以刪除.extern,因爲默認情況下所有符號都被視爲外部符號。對於部分定義,您應該參考gas manual;我相信匯編程序要求您定義節標誌。

1

我認爲它應該是「.globl」而不是「.global」

相關問題