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

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

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

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

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

谢谢

【问题讨论】:

    标签: xcode xcode4 xcode4.2


    【解决方案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 包含空格-,则应使用\ 转义它们或将路径用双引号"" 括起来

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-12
        • 2023-04-06
        • 1970-01-01
        • 2022-09-28
        • 2012-09-21
        • 1970-01-01
        • 2022-07-26
        • 1970-01-01
        相关资源
        最近更新 更多