3

llvm 4.1 コンパイラを使用して XCode 4.5 for iPhone でコンパイルするスタンドアロン ARM アセンブリ ファイル (.s ファイル) で関数をコンパイルおよびリンクする方法の簡単な例を誰か提供できますか? つまり、デフォルトのコンパイラを備えた最新の XCode です。

.cc または .mm ファイル (どちらも cplusplus 互換) から ARM アセンブリ関数を呼び出そうとしています。

このファイルを iPhone 用の XCode テンプレート プロジェクト (OpenGL Game など) の 1 つにドロップし、その中で定義されている関数 (入力 int に 1 を追加して値を返す関数など) を呼び出したいと思います。

この例を試しました: XCode で Arm アセンブリを直接コンパイルする

この投稿のコードを試すと、リンカ エラーが発生します: アーキテクチャ armv7 の未定義シンボル: "add_in_asm(int)", referenced from:

どうもありがとう。

4

1 に答える 1

2

C++/ObjC++ を使用しているため、そのように宣言されていない限り、リンカーは C 名を検出しません。したがって、関数を次のように宣言する必要があります

extern "C" int myfunction(...); // or what signature ever...
于 2012-12-01T21:39:14.220 に答える