我正在尝试运行一个包含一些头文件的项目,但这些头文件具有头文件实际位置的路径,如“../../../FMRuntimeHelpers/Classes/FMRuntimeHelpers.h".
现在编译器没有考虑这个路径(../../../FMRuntimeHelpers/Classes/FMRuntimeHelpers.h)来定位实际的头文件及其内容,如@interface等。虽然它将此视为Objective C代码和生成错误:“预期标识符或'('”。
请建议。我需要做些什么来解决它?如何定义这个相对路径?我以这种方式拥有数千个文件,因此用原始文件替换这些文件需要花费大量时间。
答案 0 :(得分:4)
方法1:
选择"源树" Xcode首选项中的标签。此处添加的路径将是系统级路径,可供所有项目使用。
在项目信息的构建设置中设置HEADER_SEARCH_PATHS参数。我添加了" $ {SRCROOT}"这里没有递归。此设置适用于大多数项目。
方法2:
Xcode使用具有GCC兼容命令集的Clang。 GCC has an option -Idir添加系统标头搜索路径。此选项可通过Xcode项目构建设置中的HEADER_SEARCH_PATHS访问。
但是,添加到此设置的路径字符串不应包含任何空格字符,因为该选项将按原样传递给shell命令。
但是,一些OS X用户(像我一样)可能会将他们的项目放在路径上,包括应该被转义的空白。如果手动输入,可以像/ Users / my / work / a \ project \ with \ space一样将其转义。您也可以使用引号来转义它们以使用环境变量,例如" $ {SRCROOT}"。
或者只是使用。指示当前目录。我在Webkit的源代码中看到了这个技巧,但我不确定在构建它时当前目录是否会设置为项目目录。
$ {SRCROOT}是Xcode预定义的值。这意味着源目录。您可以在Reference document中找到更多值。
答案 1 :(得分:0)
您可以通过Target-> Build Settings->标题搜索路径手动添加此标题搜索(您可以在其中添加相对路径,如../../),并在项目中使用标题文件。
答案 2 :(得分:0)
如果你的Xcode版本是6.1,你需要像pic一样设置它的首选项,并将xcode build作为你的目标设置