Objective c 编译Mach-o arm对象文件

Objective c 编译Mach-o arm对象文件,objective-c,compilation,armv7,Objective C,Compilation,Armv7,我正在尝试使用命令行将mach-o arm对象文件编译为mach-o arm可执行文件。我使用过各种类似的命令 clang -arch armv7 helloapp.o -o helloapp clang helloapp.o -o helloapp gcc helloapp.o -o helloapp 它们都返回不同的错误,如编译错误的体系结构或缺少必要的文件。我需要什么命令来正确编译此文件?默认编译器(您的$PATH中的编译器)引用可以为本地计算机编译的编译器。您需要一个知道如何创建ARM

我正在尝试使用命令行将mach-o arm对象文件编译为mach-o arm可执行文件。我使用过各种类似的命令

clang -arch armv7 helloapp.o -o helloapp
clang helloapp.o -o helloapp
gcc helloapp.o -o helloapp
它们都返回不同的错误,如编译错误的体系结构或缺少必要的文件。我需要什么命令来正确编译此文件?

默认编译器(您的
$PATH
中的编译器)引用可以为本地计算机编译的编译器。您需要一个知道如何创建ARM二进制文件的交叉编译器。如果已安装带有iOS SDK的Xcode,则可以使用以下示例:

PATH_TO_Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc

例如,在我的机器上:

ARM_GCC=~/Documents/Xcode4.6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
IOS_SDK=~/Documents/Xcode4.6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk

# Compile
$ARM_GCC -arch armv7 -c test.c -o test.o
# Link
$ARM_GCC -arch armv7 -isysroot "$IOS_SDK" test.o -o test
如果然后运行
文件测试
,我会得到:

test: Mach-O executable arm

我仍然收到同样的错误,告诉我“文件是为armv7构建的,它不是链接的体系结构”,链接时还需要传递
-arch-armv7
!并相应地设置
isysroot
。看我更新的答案。好的,这肯定比以前更好了。虽然“ld:library not found for-lcrt1.o”出现错误
test: Mach-O executable arm