我在主目录中添加了一个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时,没有任何问题可以构建源代码。
我已尝试过在互联网上找到的许多建议
但仍然没有去。
问题是什么xcode中的Bug?
答案 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)