如何在xcode项目中设置包含路径

时间:2013-01-03 06:28:53

标签: c xcode include environment-variables

我正在尝试在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>

我读到here这些尖括号指示预处理器沿着INCLUDE环境变量指定的路径搜索包含文件,而不是在与包含#include的文件相同的目录中进行搜索。

所以我在Xcode中添加了INCLUDE环境变量,转到Product-&gt; Edit Scheme ..并将其设置为/the-whole-path-to/include/但是,我仍然发现文件未找到错误。

如果我更改file1.h以包含它们,则成功包含文件:

#include "file2.h"

但我不想为库中的每个文件执行此操作。

我该如何解决这个问题?

7 个答案:

答案 0 :(得分:50)

在XCode 5.0.2版中,实现此目的的最佳方法可能是将其添加到目标的“搜索路径”窗格中。找到这个(对我来说)难以置信不直观。这就是我如何做到这一点,对于那些像我一样困惑的人:

在左栏中,单击Project Navigator图标(看起来像文件夹)。然后,单击项目条目。这应该在主窗格中显示一堆设置。在此窗格的顶部,单击“构建设置。这显示了一系列条目...包括一个名为搜索路径...但您无法在此处添加搜索路径!这让我咬牙切齿然后,直到我发现此窗格顶部的项目名称是下拉列表;从此下拉列表中选择目标,您现在应该可以双击“标题搜索路径”并执行所需的编辑。

哦,疯狂的GUI的快乐。

答案 1 :(得分:47)

想出来。

您所要做的就是在“其他C标志”

下的构建设置中添加-I标志

因此,在目标的构建设置中搜索“其他C标志”并添加-I/path-to-include/

这是一个截图: enter image description here

答案 2 :(得分:11)

我使用项目构建设置在Xcode 5.0.1中解决了这个问题(正如上面提到的John和Ian,但由于&lt; 50 rep而无法发表评论)。

新信息:

用户标题搜索路径添加包含时,我还必须将“始终搜索用户路径”更改为“是”。

向(非用户)标题搜索路径添加包含时,不需要始终搜索用户路径。

答案 3 :(得分:7)

试试这个:

1 - 在左侧Xcode窗格中选择您的项目文件 2 - 确保在中间Xcode窗格中选择了您的项目 3 - 选择&#34;构建设置&#34;在中间Xcode窗格的顶部
4 - 确保&#34;所有&#34; &安培; &#34;综合&#34;选择在&#34;构建设置&#34;下面 5 - 在下面的搜索字段中输入标题&#34;构建设置&#34;

您应该会在中间窗格中看到准备编辑的搜索路径字段。

答案 4 :(得分:4)

虽然这样可行,但最好将它放在“搜索路径”标签下。

答案 5 :(得分:2)

你可以使用&#34;其他C旗帜&#34;或者使用&#34; HEADER_SEARCH_PATHS&#34;,指定包含路径,以查找可执行文件的标题。

答案 6 :(得分:0)

在 2021 年,Xcode v. 12.4,解决方案似乎是:

Project->Targets->General->“Scan All Source Files For Includes”-> 设置为“Yes”

这对我有用。

但是,如果您有多个版本的特定 .h 文件,这可能会适得其反,这可能不是一个好习惯,但如果您有很多子目录,其中包含自己的迷你项目和类似命名的包含文件,则可能会适得其反。

>