xcode 4.5.1。标题搜索路径不起作用,<目录file.h =“”>找不到文件</directory>

时间:2012-10-25 18:37:45

标签: include xcode4.5

我在主目录中添加了一个include目录。我可以从构建目录运行“ls -l~ / include”。 我在“Header Seach Path”和“User Header Search Path”中添加了该目录。在这两个地方,我都尝试过非递归和递归。 但是xcode 4.5.1在任何情况下都找不到第一个声明的头文件。

源代码call.m中声明:

 #include <directory/file.h>

我找不到“词法或预处理器问题'目录/ file.h'文件。”

但是当从cli运行xcodebuild时,没有任何问题可以构建源代码。

我已尝试过在互联网上找到的许多建议

  • 在/ usr / om我的驱动器中添加一个包含
  • 向项目添加索引,添加没有副本且没有标记为“添加到目标”的文件。
  • 重新启动xcode。
  • 指定所有特定路径。

但仍然没有去。

问题是什么xcode中的Bug?

2 个答案:

答案 0 :(得分:18)

我遇到了类似的问题,这是因为我为路径搜索路径定义的路径中有空格。例如,我将以下内容定义为搜索路径:

$(SRCROOT)/Frameworks/Headers

正在扩展到以下内容:

/Users/skoota/Documents/Xcode Projects/My App/Frameworks/Headers

正如您所看到的,路径中有空格(当您使用$(SRCROOT)变量时,这些空间并不是很明显),编译器并不特别欣赏空格。我通过将搜索路径更改为此来解决了这个问题:

"$(SRCROOT)"/Frameworks/Headers

(注意$(SRCROOT)周围的引号标记,它们会占用空格。现在扩展到:

"/Users/skoota/Documents/Xcode Projects/My App"/Frameworks/Headers

效果很好,虽然嵌入的"标记看起来有些奇怪。这花了我一段时间才弄明白,所以希望它有所帮助!

答案 1 :(得分:4)

如果目录路径中有空格,通常会发生这种情况。要解决此问题,请在路径周围使用双引号。

假设您要使用项目目录,那么您应该使用:$PROJECT_DIR。如果要在文件夹中进行搜索,请启用递归。或者,您可以使用$(SRCROOT)