14

我在我的主目录中添加了一个包含目录。我可以从构建目录运行“ls -l ~/include”。我已经在“标题搜索路径”和“用户标题搜索路径”中添加了该目录。在这两个地方,我都尝试过非递归和递归。但是 xcode 4.5.1 在任何情况下都找不到第一个声明的头文件。

它在源代码 call.m 中声明为:

 #include <directory/file.h>

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

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

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

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

但是还是不行。

问题是什么。xcode中的错误?

4

2 回答 2

20

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

$(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

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

于 2012-12-19T06:13:19.983 回答
5

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

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

于 2014-05-27T11:04:04.223 回答