所以这是独家新闻:
我有一个构建标准库的 xcode 项目。这个标准库生成一个“.a”文件,以及一些头文件,这些头文件需要对使用所述库的任何客户端可见。
标准库构建到一组目录:
/builds/foo/bar/build/
构建库后看起来像这样:
/builds/foo/bar/build/
lib.a
headers/
head1.h
head2.h
head3.h
我有一个客户端应用程序需要使用这个库。每次构建客户端应用程序时都需要重建标准库,因此我将其设置如下:
我创建了一个客户端应用程序,向其中添加了标准 lib .xcodeproj 文件,并将其连接为直接依赖项。我在“Link Binary with Library”部分适本地链接了它。然后,按照标准套装,我将客户端应用程序设置为在以下位置搜索头文件:
/builds/foo/bar/build/headers/
这有效……有点。如果我删除上面列出的目录并尝试重建,它将失败,因为它找不到头文件。
"Well, Duh! You deleted the directory that contains the header files!".
是的,但是客户端构建的设置方式是在客户端应用程序构建之前编译静态库并将其放置在/builds/foo/bar/build 目录(包括头文件)中。它应该找到这些头文件。它们在编译客户端之前存在,并且正确设置了“Header Search Path”。
正如我之前所说,如果我删除包含 lib 和头文件的目录,并尝试全新构建客户端应用程序,它会失败。尽管构建失败,/builds/foo/bar/build 目录被创建并填充,这意味着所有后续构建和清理都会成功。
知道如何解决这个问题吗?
最佳答案
通常 Xcode 4 会正确处理依赖项目的构建;但我发现它没有的情况。您可以尝试编辑方案并使静态库依赖显式化。
关于iOS - 在另一个 Xcode 项目中包含静态库项目... header 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540754/