在标题搜索路径中检查“递归”是啥意思
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 Paths
、Library Search Paths
、Framework Search Paths
...)时,您可以定义一个父文件夹的路径并设置recursive
(/**
将被添加到路径的尽头)。例如,您可以使用recursive
参数而不是include/<target_name>
将path
配置到include
目录(或更多到Build
目录)。
请注意:如果patch
包含空格-,则应使用
\
转义它们或将路径用双引号""
括起来
【讨论】:
以上是关于在标题搜索路径中检查“递归”是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
“查找:路径必须在表达式之前:”如何指定在当前目录中也可以找到文件的递归搜索?
函数递归 二分法 匿名函数 内置函数 模块的使用 模块的搜索路径