上述三种方式是基本的文件引用方式,一个项目那么多文件,用这些引用路径遍历查找肯定是很低效的,所以Xcode会优先使用Header Map来提高头文件索引速度。
当我们开启 Build Setting 中的 Use Header Map 选项后,会自动生成的一份头文件名和头文件路径的映射表,而这个映射表就是 hmap 文件,不过它是一种二进制格式的文件,也有人叫它为 Header Map。
还有一种头文件搜索机制,它是基于 Framework 这种文件结构进行的。
当拖入一个.framework文件进入工程,自动会在Framework Search Path配置上该文件路径。
这里着重讲一下Framework打包时,Public、Private、Project的区别:
https://blog.csdn.net/MeituanTech/article/details/114109300?spm=1001.2014.3001.5502
开发的小伙伴是不是最近遇到这样的问题,新建的项目导入的第三方库,如果使用双引号import "",系统不提示,而使用了尖括号import<>导入则系统会提示。我们会感到好奇,因为尖括号<>导入的,我们一般是系统的文件,双引号""导入的是我们这些第三方。那为什么现在新建的项目导入第三方也要用<>呢。
相关苹果的说明,请点击这里
Xcode10以后,苹果采用了新的构建模式,把build System的默认改成了 New Build System,之前的改为了Legacy Build System。
所以,如果你是Xcode10之后创建的项目。那么导入第三方头文件就得用尖括号,如果想用双引号导入,那么久修改 build System 为 Legacy Build System。修改方法如下
2:一般的创建项目,直接导入第三方
如果你用New Build System ,那么导入系统提示
你需要删除/,自己动手加上.h
如果你用Legacy Build System ,那么导入系统提示
这样你就知道该怎么选择了。
做的项目中需要引用SourceTrees定义路径里的头文件,刚开始没有头绪,稍加思索发现太简单了。此SourceTrees非彼SourceTree,是Xcode“偏好设置”中的一个选项,见下图:以上面的“QUICK_COCOS2DX_ROOT”一项为例,我遇到的问题是想在工程中引用这个路径下include文件夹里的头文件。一般情况下如果想把某个文件夹中的头文件加入到工程中,可以在BuildSetting中的HearderSearchPath里添加形如$(SRCROOT)/..之类的路径,而$(SRCROOT)其实就是.xcodeproj文件所在的路径。其实,在上图SourceTrees中定义的QUICK_COCOS2DX_ROOT与SRCROOT的作用等同,都是充当路径的别名的。那么照葫芦画瓢,想引用别名为QUICK_COCOS2DX_ROOT路径下include文件夹里的头文件,就在BuildSetting中的HearderSearchPath里添加$(QUICK_COCOS2DX_ROOT)/.include路径就行了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)