如何在iPhone的XCode / clang中编译独立的ARM程序集文件

时间:2012-12-01 20:49:53

标签: xcode assembly arm

任何人都可以提供一个简单的例子,说明如何在一个独立的ARM程序集文件(.s文件)中编译和链接一个函数,该文件使用llvm 4.1编译器在XCode 4.5 for iPhone中编译?换句话说,最新的XCode使用默认编译器。

我正在尝试从.cc或.mm文件调用ARM汇编函数(两者兼容cplusplus)。

我想将此文件放入iPhone的一个XCode模板项目(例如OpenGL Game)中,并调用其中定义的函数(例如,将输入int加1并返回值的函数)。

我试过这个例子: Compile Arm Assembly directly in XCode

当我尝试此帖子中的代码时,我收到链接器失败:     架构armv7的未定义符号:       “add_in_asm(int)”,引自:

非常感谢。

1 个答案:

答案 0 :(得分:2)

由于您使用的是C ++ / ObjC ++,链接器将找不到C名称,除非它被声明为。 因此,您应该将您的函数声明为

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