2012-12-01 34 views
2

任何人都可以提供一個簡單的例子,說明如何在獨立的ARM程序集文件(.s文件)中編譯和鏈接函數,該程序可以在XCode 4.5 for iPhone用llvm 4.1編譯器?換句話說,使用默認編譯器的最新XCode。如何在iPhone的XCode/clang中編譯獨立的ARM程序集文件

我正在嘗試從.cc或.mm文件(兼容cplusplus)調用ARM彙編函數。

我想把這個文件放到iPhone的XCode模板項目之一(例如OpenGL Game)中,並調用內部定義的函數(比如將一個函數添加到輸入int並返回值)。

我試過了這個例子: Compile Arm Assembly directly in XCode

我得到一個鏈接失敗時,我嘗試從這個帖子的代碼:用於建築的ARMv7 未定義的符號: 「add_in_asm(INT)」,從引用:

非常感謝。

回答

2

由於您使用的是C++/ObjC++,因此鏈接器將不會找到C名稱,除非它被聲明爲這樣。 因此,你應該聲明你的功能爲

extern "C" int myfunction(...); // or what signature ever... 
+0

是的,這是問題所在。謝謝。 – user501138

相關問題