2012-05-09 11 views
4

私はOSクラス上にある単純なオペレーティングシステムコードをコンパイルしようとしています。これは、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

「.GLOBAL」あなたは何のコンパイラを使用している「.globl」であるべきだと思いますか? – trojanfoe

+0

@trojanfoe彼のmakefileは彼が 'gcc'を使っていると言っています –

+0

@PavanManjunathそれは私にバージョンを教えてくれません。 – trojanfoe

答えて

5

OS/Xを使用してコンパイルしているときは、Xコードの古代版asを使用します。これは、若干古くなった構文を付ける必要があることを意味します。このother answerは、これらの問題の一部をカバーしています。

少なくとも、.global.globlに置き換える必要があります。 .externはデフォルトですべてのシンボルが外部として扱われるため削除できます。セクションの定義については、gas manualを参照してください。私は、アセンブラがセクションフラグを定義するよう求めていると思います。

1

私はそれがない

関連する問題