之前做cocos2dx的时候一直不明白SRCROOT和PROJECT_DIR是什么具体含义,以为是2dx构建的,最近才查了一些资料。
1.$(SRCROOT)宏和$(PROJECT_DIR)宏:
都指xxx.xcodeproj所在的父目录。
2.search paths里有引号和没有引号的区别:
双引号的作用是如果在路径中有空格,可以识别该路径。没有双引号但是路径中有空格,我们发现它会自动变成两个路径。
3.$(inherited):
target在设置自己路径的时候如果加了这个,那么就是继承project里设置的路径。如果不需要继承就不加,要不然乱加有可能整混导致路径错误。
4.recursive和non-recursive:
recursive:遍历该目录
non-recursive:默认路径设置;不遍历该目录。
如果路径的属性为recursive,那么编译的时候在找库的路径的时候,会遍历该目录下的所有子目录的库文件。
PS:在搭建项目的时候,可以创建一个专门放库文件的文件夹并且设置其属性为recursive。$(PROJECT_DIR)/**相当于遍历项目文件同级下的所有路径(不推荐使用,项目大的话,影响编译的速度)。
5.header search paths和user header search paths的区别:
编码时候通过 #include 引入头文件的方式有两种 <> 和 ""。<> 是只从 Header Search Paths 中搜索, 而 "" 则能从 Header Search Paths 和 User Header Search Paths 中搜索。换言之 ,假如你把 路径加到 User Header Search Paths 中,那么 你用 #include <file.h> 的方式去引入对应的头文件,就会报错。 如果加到 Header Search Paths, 就没有问题了。