正文
在Xcode中的文件搜索路径配置有两个地方,一个是Project层的配置,一个是Target的配置。
Project-Build Settings-Search Paths
Target-Build Settings-Search Paths
在Target中的配置选项中,可以通过配置$(inherited)让Target 继承自 Project中的配置。
Search Paths的选项如下:
其中重要的有如下4个
1.Header Search Paths
2.User Header Search Paths
3.Frameworks Search Paths
4.Library Search Paths
Header Search Paths
在Header Search Paths配置的路径,可以通过#import <>和#import "" 这种方式引入OC类,可以通过#include <>和#include""种方式引入c, c++文件。
#import <>表示从系统目录空间查找文件,#import ""表示从用户目录空间查找文件。
Header Search Paths中配置的路径就是把路径同时添加到系统目录空间和用户目录空间中,所以两种方式都可以搜索。
常用配置项有:
引用方式有:
// import直接引入类名ClassA
#import <ClassA.h>
#import "ClassA.h"
// include 导入的c/c++文件是实际路径,比如Header Search Paths配置的是项目Root目录,
// 那么这个<src/ClassA.h>中的src表示文件放置在了Root目录下的src目录下。
#include "src/ClassA.h"
// #include <>引入的是编译器标准库的文件
#include <libClassA.h>
User Header Search Paths
在User Header Search Paths配置的路径,可以通过#import ""或者#include""两种方式引入。
#import ""表示从用户目录空间查找文件。
User Header Search Paths中配置的路径就是把路径添加到用户目录空间中,所以使用#import ""这种方式导入。
常用配置项有:
引用方式如下:
// import直接引入类名ClassA
#import "ClassA.h"
// include 导include 导入的c/c++文件是实际路径,比如Header Search Paths配置的是项目Root目录,
// 那么这个"src/ClassA.h"中的src表示文件放置在了Root目录下的src目录下。
#include "src/ClassA.h"
Frameworks Search Paths
配置本地引入的Framework库的路径,如:
$(SRCROOT)/src/frameworks/xxx.framework
Library Search Paths
配置本地引入的.a静态库的路径,如:
$(SRCROOT)/src/frameworks/xxx.a
另外
项目根路径说明
$(SRCROOT) 和 $(PROJECT_DIR) 都指xxx.xcodeproj所在的父目录
是否递归查询选定目录下的所有子目录
non-recursive:默认路径设置,不遍历该目录。
recursive:遍历该目录
参考文章:
https://www.jianshu.com/p/d41e05e6d9fa