任何人都可以提供一个简单的示例,说明如何使用 llvm 4.1 编译器在 XCode 4.5 for iPhone 中编译和链接独立 ARM 程序集文件(.s 文件)中的函数吗?换句话说,带有默认编译器的最新 XCode。
我正在尝试从 .cc 或 .mm 文件(均与 cplusplus 兼容)调用 ARM 汇编函数。
我想将此文件放入 iPhone 的 XCode 模板项目之一(例如 OpenGL 游戏)并调用其中定义的函数(比如将输入 int 加 1 并返回值的函数)。
我试过这个例子: Compile Arm Assembly directly in XCode
当我尝试使用此帖子中的代码时,出现链接器故障: 体系结构 armv7 的 undefined symbol : “add_in_asm(int)”,引用自:
非常感谢。
最佳答案
由于您使用的是 C++/ObjC++,链接器将找不到 C 名称,除非它被声明为 C 名称。 因此,您应该将您的函数声明为
extern "C" int myfunction(...); // or what signature ever...
关于xcode - 如何在 XCode/clang 中为 iPhone 编译独立的 ARM 程序集文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663622/