2013-01-03 150 views
45

我想在Objective-C Xcode项目中使用C库。如何在xcode项目中设置包含路径

该库的目录结构如下:

-- 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的文件位于同一目录中。

因此,我通过转到Product-> Edit Scheme ..在Xcode中添加了INCLUDE环境变量,并将其设置为/the-whole-path-to/include/但是,我仍然收到找不到文件的错误。

的文件已经被成功列入如果我改变file1.h,包括他们是这样的:

#include "file2.h" 

但我宁愿这样做,在库中的每个文件。

我该如何解决这个问题?

+0

另请参阅Apple开发人员的[Xcode Build Setting Reference](https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html)。 – jww

回答

45

想通了。

所有你需要做的就是-I标志添加到您的构建下的“其他C标志”

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

这里的屏幕截图: enter image description here

+0

就你而言,什么是pathToInclude。我问这是因为我的路径已经过了我的xcode项目,并且我尝试过使用-I /../../ folder_to_include,但它不起作用。谢谢 – xarly

+1

见下面的评论;让XCode通过将它添加到搜索路径来知道你在做什么可能会更好,而不是粘在-I标志中。 –

+0

@John Clements,谢谢,最后我已经用你的解决方案,用这条路径,它工作!,你说得对,它更干净。谢谢 – xarly

5

虽然这可行,但最好将它放在“搜索路径”选项卡下。

+1

小心提供方向? –

+0

而不是将其置于“Apple LLVM编译器4.1 - 语言”下,将其放在“搜索路径”下。有一个专门用于包含。 – imallett

+0

答案应该站在自己的位置。你们似乎提到了一个现有的答案,但随着它们的显示顺序不断变化,这是一个可怕的想法。坦率地说,现有答案下的评论适合你的评论。 –

45

在XCode 5.0.2版本中,最好的方法是将其添加到目标的“搜索路径”窗格中。定位这是(对我来说)令人难以置信的不直观。以下是我如何做到的,对于那些和我一样困惑的人:

在左栏中,单击Project Navigator图标(看起来像一个文件夹)。然后,点击项目条目。这应该在主窗格中显示一堆设置。在这个窗格的顶部,点击“Build Settings”,这显示了一堆条目...包括一个叫做Search Paths的搜索路径......但是你不能在这里添加搜索路径!这让我很痛苦同时,直到我发现该窗格顶部的项目名称是一个下拉菜单;从此下拉菜单中选择目标,现在您应该能够双击“标题搜索路径”并进行必要的修改。

哦,疯狂的GUI的喜悦。

+3

我没有任何问题添加项目的搜索路径..不需要切换到目标:http://i.imgur.com/Tcs36ec。 png –

+0

@BrianGordon你的照片专门显示目标被改为项目。 –

+1

@AntonK对,它在项目上。不是目标。蓝色图标表示项目。约翰·克莱门茨表示,它必须以这个选项出现为目标。 –

10

我使用项目生成设置(如约翰和伊恩上面提到的解决了这个在Xcode 5.0.1,但我不能评论,由于< 50代表)。

新信息:

当添加包括对用户头搜索路径,我也不得不改变总是搜索用户路径为是。

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

2

您可以使用“其他C标志”或使用“HEADER_SEARCH_PATHS”来指定包含路径,以查找可执行文件的标头。

3

试试这个:

1 - 在左侧的Xcode窗格中选择您的项目文件
2 - 确保您的项目在中间的Xcode窗格
3选择 - 选择“生成设置”在顶部中间的Xcode窗格
4 - 确保“所有” &“组合拳”只是下“生成设置”
5选择 - 仅低于“生成设置”

在搜索栏中键入头你SH应该在中间窗格中看到准备好进行编辑的搜索路径字段。

+0

谢谢!你怎么能在全球范围内做到这一点? –

+0

为什么最好的答案总是不被接受的答案? :)。 – TatiOverflow

相关问题