我正在尝试在 Objective-C Xcode 项目中使用 C 库。
库目录结构如下:
-- include/
|-- config.h
|-- lib/
| |-- file1.h
| |-- file2.h
| |-- file3.h
库的文档说包含 file1.h,file1.h 包含 file2.h 和 file3.h。
我收到包含 file2.h 和 file3.h` 的“文件未找到”错误。 它们通过以下方式包含在 file1.h 中:
#include <lib/file1.h>
#include <lib/file2.h>
我在这里读到这些尖括号指示预处理器沿着 INCLUDE 环境变量指定的路径搜索包含文件,而不是在包含 #include 的文件所在的目录中搜索。 因此,我通过转到“产品”->“编辑方案”在 Xcode 中添加了 INCLUDE 环境变量..并将其设置为
/the-whole-path-to/include/
但是,我仍然收到文件未找到错误。
如果我更改 file1.h 以包含它们,文件将成功包含:
#include "file2.h"
但我不想对库中的每个文件都这样做。
我该如何解决这个问题?
在左栏中,单击“项目导航器”图标(看起来像一个文件夹)。然后,单击项目条目。这应该在主窗格中显示一堆设置。在此窗格的顶部,单击“构建设置”。这会显示一堆条目...其中一个称为“搜索路径”...但您不能在此处添加搜索路径!这让我咬牙切齿了好久同时,直到我发现此窗格顶部的项目名称是一个下拉列表;从该下拉列表中选择 target,现在您应该能够双击“标题搜索路径”并执行所需的编辑。
哦,疯狂 GUI 的乐趣。
想通了。
因此,在目标的构建设置中搜索“其他 C 标志”并添加
-I/path-to-include/
这是截图:
试试这个:
3 - 选择中间 Xcode 窗格顶部的“构建设置”
4 - 确保在“构建设置”下方选择“全部”和“组合”
5 - 在“构建设置”下方的搜索字段中输入标题
您应该在中间窗格中看到可供编辑的搜索路径字段。
我使用项目“构建设置”在 Xcode 5.0.1 中解决了这个问题(正如上面 John 和 Ian 所指出的,但由于
我无法发表评论)将包含添加到<50 rep).
用户标题搜索路径时,我还必须将“始终搜索用户路径”更改为“是”。
将包含添加到(非用户)标题搜索路径时,不需要始终搜索用户路径。
虽然这可行,但最好将其放在“搜索路径”选项卡下。
您可以使用“其他 C 标志”或使用“HEADER_SEARCH_PATHS”来指定包含路径,以查找可执行文件的标头。
2021 年,Xcode v.12.4,解决方案似乎是:
这对我有用。
但是,如果您有特定 .h 文件的多个版本,这可能会适得其反,这可能不是一个好的做法,但如果您有很多带有自己的迷你项目和类似名称的包含文件的子目录,则可能会适得其反。
在 Xcode 15 中,它与以往基本相同