gpt4 book ai didi

objective-c - 将 Objective-C 文件编译成目标文件 (.o)

转载 作者:行者123 更新时间:2023-12-04 00:47:01 25 4
gpt4 key购买 nike

我的任务是在 Xcode 4 中为 iOS 项目创建对象 .o 文件。我尝试了以下适用于 NSObject 类的命令

gcc -c implemtationfile.m

但是如果我尝试在从 UIViewController 继承的类上运行命令,例如我会收到大量以

开头的错误
UIKit/UIKit.h: No such file or directory

其次,由于项目中有多个文件,是否可以为所有源文件创建一个.o文件?

最佳答案

出现错误并不奇怪。

您正在尝试从 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 ARM 版本的 GCC。只要调用 GCC 就会调用 Mac OS X 版本(在/usr/bin/中)。

像 GCC 这样的编译器需要针对主机和目标架构进行编译。

宿主架构是您将在其中调用编译器的架构。目标是您将为其构建二进制文件或目标文件的体系结构。

因此请尝试使用适合 iPhone 目标架构的正确版本的 GCC 编译您的代码。

另请注意,如果针对框架进行编译,您应该使用 -framework GCC 参数。

关于objective-c - 将 Objective-C 文件编译成目标文件 (.o),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com