Xcode Header Search Paths 与 User Header Search Paths 详解

https://blog.csdn.net/alan00000/article/details/45921217

https://blog.csdn.net/wangyanchang21/article/details/78813311 

这边blog 简单介绍一下 Header Search Paths. 

      根据苹果文档(https://developer.apple.com/library/mac/documentation/developertools/Conceptual/XcodeBuildSystem/300-Build_Settings/bs_build_settings.html#//apple_ref/doc/uid/TP40002691-SW5 ),XCode用户可以 通过Header Search Paths 来配置环境变量。但这里涉及到一个另外一个参数 User Header Search Paths, 这两者到底有什么区别呢?

     首先明确一点,Header Search Paths 顾名思义就是用来存放 Project 中头文件的搜索根源,没有被add到项目里的头文件,可以通过配置Header Search Paths 来引入头文件,这样的好处可以不让project 包含的文件太多,便于管理。

     浅显一点的区别是,编码时候通过 #include 引入头文件的方式有两种 <> 和 ""。<> 是只从 Header Search Paths 中搜索, 而 "" 则能从  Header Search Paths 和 User Header Search Paths 中搜索。换言之 ,假如你把 路径加到  User Header Search Paths 中,那么 你用 #include <file.h> 的方式去引入对应的头文件,就会报错。 如果加到  Header Search Paths,  就没有问题了。

     具体一点的区别是,<> 是从系统目录空间 (对应 Header Search Paths)中搜索文件, "" 是从用户目录空间(对应 User Header Search Paths)中搜索文件。如果你把路径加到 User Header Search Paths 中,而 <> 无法从系统目录空间中找到新加的路径,从而报错。

Header Search Paths 就是我们平时使用的, 设置头文件搜索路径的方法. 可以通过配置Header Search Paths 来引入头文件, 从而可以使用该类.

分析
在Xcode->Target->BuildSettings中, 有两个设置一个是User Header Search Paths, 一个是 Header Search Paths. 其实还有一个废弃的Always Search User Paths.


Header Search Paths 就是我们平时使用的, 设置头文件搜索路径的方法. 可以通过配置Header Search Paths 来引入头文件, 从而可以使用该类.

区别
Header Search Paths 和 User Header Search Paths 是具有同样功能的, 区别在于 import 或者 include 头文件时, Header Search Paths 会多一种方式.

当import时, 有两种方式:

#import <SomeClass.h>
#import "SomeClass.h"
1
2
若在Header Search Paths中设置SomeClass的路径后, 上面两种方式都可以使用. 但在User Header Search Paths中设置后, #import <SomeClass.h> 会编译报错.

根本区别在于, 前者生成类似“-I path/to/header”的编译选项,后者生成类似“-iquote path/to/header”.

扩展
其实还有另一个很相似的设置Always Search User Paths, 
如果出现上面这样的错误, 这时把Always Search User Paths设置成Yes,强制也import<> 也在User Header Search Paths搜索。

不过Always Search User Paths这个变量已经过时了,目前还存在只是为了向后兼容,默认值都是被设置为NO。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值