我的任务是在Xcode 4中为iOS项目创建对象.o文件。我尝试了以下命令,该命令适用于NSObject类
gcc -c implemtationfile.m
但是如果我尝试在从UIViewController继承的类上运行该命令,例如我从
开始出现大量错误UIKit/UIKit.h: No such file or directory
其次,由于项目中有多个文件,是否可以为所有源文件创建一个.o文件?
答案 0 :(得分:4)
你有错误并不感到惊讶。
您正在尝试从OSX编译iOS代码。如果从终端调用GCC,您将获得Mac OS X编译器。
即使它可以生成.o文件,这些目标文件也是Mach-O目标文件,这意味着它们被编译为针对Mac OS X编译器工具链的对象文件。
这里没有iOS。您的目标文件将具有Intel(x86)或PPC体系结构。 iPhone是ARM,所以你浪费了。
您应该能够使用正确的GCC编译器工具链继续ARM目标文件。
类似的东西:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.0.1
我还没有测试过,但很明显你需要使用iPhone的GCC版本。只需调用GCC就会调用Mac OS X版本(在/ usr / bin /)。
需要为主机和目标架构编译像GCC这样的编译器。
主机体系结构是您将在其中调用编译器的体系结构。 目标是您将构建二进制文件或目标文件的体系结构。
因此,请尝试使用适合iPhone目标架构的正确版本的GCC编译代码。
另请注意,如果针对框架进行编译,则应使用-framework
GCC参数。