任何人都可以提供一个简单的例子,说明如何在一个独立的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)”,引自:
非常感谢。
答案 0 :(得分:2)
由于您使用的是C ++ / ObjC ++,链接器将找不到C名称,除非它被声明为。 因此,您应该将您的函数声明为
extern "C" int myfunction(...); // or what signature ever...