iphone - 公共(public) header 路径、安装目录、搜索 header 路径和其他噩梦

标签 iphone ios ipad cocoa-touch cocoa

我有一个由 2 个库(libraryA 和 libraryB)和一个包组成的项目。其中每一个都像项目一样创建,并通过拖动它们导入到主项目中。

仅拖动它们不足以让 Xcode 找到所有 header 来编译整个项目,因此我不得不使用硬路径来破解路径,但这很糟糕,因为路径可以更改,我将无法再次编译该项目。我想使用像 these ones 这样的宏访问这些文件,但在测试了几乎所有文件后,我无法使其工作。

我必须使编译工作的解决方案如下。

我已经调整了每个库,使其公共(public) header 保存在内部

/Users/rubberduck/Library/Developer/Xcode/DerivedData/MyProject-dnaimaovsccuvieahmvgttwjnabc/Build/Products/Debug-iphoneos/

使用目标名称,因此在编译后,它们会将公共(public) header 放在

/Users/rubberduck/Library/Developer/Xcode/DerivedData/MyProject-dnaimaovsccuvieahmvgttwjnabc/Build/Products/Debug-iphoneos/libraryA

/Users/rubberduck/Library/Developer/Xcode/DerivedData/MyProject-dnaimaovsccuvieahmvgttwjnabc/Build/Products/Debug-iphoneos/libraryB

现在的问题是libraryB需要libraryA的头文件来编译。如果这些是同级目录,我应该在libraryB 的 header 搜索路径上放置什么以指向libraryA 的。

注意:我需要一个不是硬编码的路径,而是使用我提到的宏之一。

最佳答案

Apple 似乎已经放弃将公共(public) header 路径作为静态库包含的首选机制,可能是由于这些类型的复杂性。如果您创建一个新的静态库项目,它将有一个“复制文件”构建阶段,其中头文件被复制到 "Products Directory" 中。子路径 "include/${PRODUCT_NAME}" .

导入 header 时,不要使用 #import "header1.h"您将使用#import <MyProduct/header1.h> .我相信在编译之前需要构建库,但如果它们包含在“将二进制文件与库链接”阶段中,这就不应该成为问题。

关于iphone - 公共(public) header 路径、安装目录、搜索 header 路径和其他噩梦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16096601/

相关文章:

iphone - 如何使用 UIScrollview 动态加载图像

objective-c - 尝试制作 sqlite 的可写副本时出现错误

iphone - 检测滑动 Action 以转到 ipad Web 应用程序上的另一个网页

iPhone-避免在 UIImagePickerController 中进行视频压缩

iphone - NSThread + 使用 UIkit (UIImage)

ios - 从其 subview Controller 之一中删除 UIPageViewController 的正确过程是什么?

iphone - 如何在同一台计算机上开发生产 iPhone 应用程序和 iPad 应用程序?

ios - UIScrollView 不能在 ipad 中工作

ios - 如何以编程方式使用 autoresizing IOS?

iphone - 阻止 Mobile Safari 中 <video> 元素中的 touchmove 事件