在标题搜索路径中检查“递归”是啥意思

Posted

技术标签:

【中文标题】在标题搜索路径中检查“递归”是啥意思【英文标题】:What does it mean when you check on "Recursive" in Header Search Paths在标题搜索路径中检查“递归”是什么意思 【发布时间】:2012-07-20 23:53:16 【问题描述】:

我一直在参考很多项目,我通过在标题搜索路径中添加它们的路径来做到这一点。

我一直在通过“Referenced Project's”开始关注引用的东西(例如包括 ZXingWidget)

而且我现在已经做了很多,但是我不明白递归的检查。

    这是什么意思? 何时检查“递归”路径?

谢谢

【问题讨论】:

【参考方案1】:

如果你给 Xcode 一个路径用于标头,它会在你使用 #include#import 语句时检查该路径。如果文件不存在,则退出。

如果您将路径设置为“递归”,Xcode 将搜索它找到的文件夹,如果它没有找到该文件。

看起来像这样:

【讨论】:

但是如何将其设置为“递归”? 当您在构建设置中添加搜索路径时,有一个框可以选中以设置递归。 我没看到。我所做的是将 /** 添加到它的末尾。做同样的事情吗? 这里有它的图像。 iphoneincubator.com/blog/xcode/… 跟进:如果您的包含使用文件夹,例如#include <boost/lambda/lambda.hpp>那你需要指定递归吗?【参考方案2】:

1) 为Header Search Paths输入你想要的路径,点击回车。

2) 双击您输入的路径文本。

3) 在对话框右侧选择递归。

【讨论】:

使用该值作为搜索路径搜索ALL:$(PROJECT_DIR)【参考方案3】:

对于那些像我一样想知道为 Header Search Path 选择 recursive 的人在编译器命令行上的效果是什么,它是为 生成一个 -I 参数树中的每个目录都以给定路径为根。这可能导致非常长的编译器命令行,这将使在那里寻找其他任何东西几乎是不可能的。因此,如果您想使用recursive,则值得考虑在您指定的路径下方有多少目录。

我尝试将-I../path/to/subproject/** 指定为单个文件的编译器标志,但这不起作用(这显然是 Xcode 自己进行扩展的原因)。

(对于 Xcode 9.4.1 也是如此)

【讨论】:

【参考方案4】:

当您设置path(例如Header Search PathsLibrary Search PathsFramework Search Paths...)时,您可以定义一个父文件夹的路径并设置recursive/** 将被添加到路径的尽头)。例如,您可以使用recursive 参数而不是include/<target_name>path 配置到include 目录(或更多到Build 目录)。

请注意:如果patch 包含空格-,则应使用\ 转义它们或将路径用双引号"" 括起来

【讨论】:

以上是关于在标题搜索路径中检查“递归”是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

“查找:路径必须在表达式之前:”如何指定在当前目录中也可以找到文件的递归搜索?

树递归 - 如何在深度优先搜索中包含条件?

函数递归 二分法 匿名函数 内置函数 模块的使用 模块的搜索路径

使用 find 以非递归方式搜索目录中的特定文件。艾克斯

python 深度优先搜索(DFS)算法在递归和非递归模式下的实现示例,用于图扩展和路径查找。

python 在递归和非递归模式下的呼吸优先搜索(BFS)算法实现的示例,用于图形扩展和路径查找。