我正在尝试在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"
但我不想为库中的每个文件执行此操作。
我该如何解决这个问题?
答案 0 :(得分:50)
在XCode 5.0.2版中,实现此目的的最佳方法可能是将其添加到目标的“搜索路径”窗格中。找到这个(对我来说)难以置信不直观。这就是我如何做到这一点,对于那些像我一样困惑的人:
在左栏中,单击Project Navigator图标(看起来像文件夹)。然后,单击项目条目。这应该在主窗格中显示一堆设置。在此窗格的顶部,单击“构建设置。这显示了一系列条目...包括一个名为搜索路径...但您无法在此处添加搜索路径!这让我咬牙切齿然后,直到我发现此窗格顶部的项目名称是下拉列表;从此下拉列表中选择目标,您现在应该可以双击“标题搜索路径”并执行所需的编辑。
哦,疯狂的GUI的快乐。
答案 1 :(得分:47)
想出来。
您所要做的就是在“其他C标志”
下的构建设置中添加-I标志因此,在目标的构建设置中搜索“其他C标志”并添加-I/path-to-include/
这是一个截图:
答案 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 文件,这可能会适得其反,这可能不是一个好习惯,但如果您有很多子目录,其中包含自己的迷你项目和类似命名的包含文件,则可能会适得其反。
>