- #!/bin/sh
- if type -p ccache >/dev/null 2>&1; then
- export CCACHE_MAXSIZE=10G
- export CCACHE_CPP2=true
- export CCACHE_HARDLINK=true
- export CCACHE_SLOPPINESS=file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches
- # 指定日记文件路径到桌面,等下排查集盘考题有效,集成成功后删除,不然很占磁盘空间
- export CCACHE_LOGFILE='~/Desktop/CCache.log'
- exec ccache /usr/bin/clang "$@"
- else
- exec clang "$@"
- fi
在敕令行中,cd 到 ccache-clang 文件的目次,把它的权限改成可履行文件
- $ chmod 777 ccache-clang
如不雅你的代码或者是第三方库的代码用到了C++,则把ccache-clang这个文件复制一份,重定名成ccache-clang++。响应的对clang的调用也要改成clang++,不然 CCache 不会应用在 C++ 的代码上。
- #!/bin/sh
- if type -p ccache >/dev/null 2>&1; then
- export CCACHE_MAXSIZE=10G
- export CCACHE_CPP2=true
- export CCACHE_HARDLINK=true
- export CCACHE_SLOPPINESS=file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches
- # 指定日记文件路径到桌面,等下排查集盘考题有效,集成成功后删除,不然很占磁盘空间
- export CCACHE_LOGFILE='~/Desktop/CCache.log'
- exec ccache /usr/bin/clang++ "$@"
- else
- exec clang++ "$@"
- fi
完成后项目中应当有这两个文件
Xcode 项目标调剂
须要留意的是,如不雅你应用的某个 Pod 引用了体系框架,例如AFNetworking引用了System Configuration,你须要在你本身项目标Build Phrase -> Link Binary With Libraries琅绫擎代为惹人,不然你编译时可能会收到 Undefined symbols xxx for architecture yyy一类的缺点。有点回到了原始时代的感到,但推敲到编译速度的极大年夜晋升,这一点价值可以接收。
【编辑推荐】
- CocoaPods一个Objective-C第三方库的治劳顿器
- 如安在 Swift 中应用 CocoaPods
- 应用CocoaPods进行第三方资本治理
- 应用CocoaPods给微信集成SDK打印收发消息
- 手把手教你宣布本身的CocoaPods开源库
定义CC常量
测验测验编译一遍,然后在敕令行里输入 cache -s 就能看见类似下面的 ccache 运行情况统计:
在你项目标构扶植置(Build Settings)中,添加一个常量CC,这个值会让 Xcode 在编译时把履行路径的可履行文件当做 C 编译器。
CC常量的值为 $(SRCROOT)/ccache-clang,如不雅你的脚本不是放在项目根目次,则自行调剂路径。如不雅一运行项目就报错,检查下路径是不是填错了。
封闭 Clang Modules
因为 CCache 不支撑 Clang Modules,所以须要把 Enable Modules 的选项关掉落。这个问题在 CocoaPods 上若何处理,后面会讲。
封闭了 Enable Modules 后须要作出的调剂
因为封闭了 Enable Modules,所以必须删除所有的 @import语句,调换为#import的语法
例如将 @import UIKit 调换为 #import。之后,如不雅你用到了其他的体系框架例如 AVFoundation、CoreLocation等,如今 Xcode 不会再帮你主动惹人了,你得要在项目 Target 的 Build Phrase -> Link Binary With Libraries 琅绫擎本身手动惹人。
推荐阅读
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 在当前企业改变传统的单体应用,拥抱更灵活的、应用容器的云原生 DevOps 模型的大年夜潮之下,Docker 具有先>>>详细阅读
本文标题:如何将iOS项目的编译速度提高5倍
地址:http://www.17bianji.com/lsqh/38068.html
1/2 1