0

私のiPhoneプロジェクトには、arm_asm_stub.Sという名前のアセンブリファイルがあります。このファイルには、プロジェクト内のmain.cという別のファイルから呼び出す必要のあるメソッドが含まれています。main.cファイルの先頭にファイルを#includeしないと、ビルドエラーは発生しませんが、リンカーエラーが発生します。

Undefined symbols for architecture armv7:
  "_execute_arm_translate", referenced from:
      _iphone_main in main.o

ただし、main.cの先頭にあるファイルを#includeしようとすると、XcodeはClangを使用してarm_asm_stub.Sをコンパイルするため、ファイルを#includeしないと表示されないエラーが多数発生します。そのような:

unknown type name 'ldr'
expected identifier or '('
use of undeclared identifier 'sp'

Xcodeは、この1つのファイルをプロジェクトの他の部分とは別にコンパイルするにはどうすればよいですか?

4

1 に答える 1

3

ファイルをプロジェクトに追加するだけ.Sで、ビルド システムが自動的にアセンブルします。ただし、記号には注意してください。すべての C 関数には、コンパイラによって先頭にアンダースコアが追加されるため、アセンブリ言語ルーチン ラベルを呼び出すには、C コードの先頭にアンダースコアが必要です。

于 2012-05-30T14:57:59.540 に答える