使用ccache加速xcode編譯過程

2021-08-04 05:52:08 字數 2003 閱讀 1607

前面已經介紹過如何安裝ccache,這裡不廢話。要確保ccache 版本不低於3.19

brew install ccache --head
如果之前安裝了ccache release版本也沒有關係,因為ccache release版本已經是3.19了。

如何安裝brew?前面也介紹過,不解釋。可google homebrew

我們以替換xcode預設工具鏈中的clang和clang++的方式把ccache加到clang的前端。所以需要編寫兩個指令碼,分別叫clang.new / clang++.new。暫且放到$home/bin下面。

#!/bin/bash

export ccache_cpp2=yes

/usr/local/bin/ccache clang "$@"

在~/bin建立指令碼ccache-clang,內容如上,不要忘了+x。

chmod a+x ~/bin/ccache-clang

ccache-clang++

#!/bin/bash

export ccache_cpp2=yes

/usr/local/bin/ccache clang++ "$@"

在~/bin新建指令碼ccache-clang++,內容如上。

chmod a+x ~/bin/ccache-clang++

修改xcode clang compiler plugin

xcode_usr=$( xcode-select -p)/usr/bin

cd xcode_usr

ln -s ~/bin/ccache_clang clang.new

ln -s ~/bin/ccache_clang++ clang++.new

xcode_plugin=$( xcode-select -p )

cd "$xcode_plugin/../plugins/xcode3core.ideplugin/contents/sharedsupport/developer/library/xcode/plug-ins"

cd "clang llvm 1.0.xcplugin/contents/resources"

很有可能你需要sudo 上面所有命令

修改clang llvm 1.0.xcspec

sed -i backup1 -e "s/execpath[[:blank:]]*=[[:blank:]]*\"clang\"/execpath = \"clang.new\"/g" clang\ llvm\ 1.0.xcspec

sed -i backup2 -e "s/execcpluspluslinkerpath[[:blank:]]*=[[:blank:]]*\"clang\+\+\"/execcpluspluslinkerpath = \"clang\+\+.new\"/g" clang\ llvm\ 1.0.xcspec

也可以手工修改xcspec檔案,找到execpath=」clang」改為execpath=」clang.new」;execcpluspluslinkerpath=」clang++」改為 execcpluspluslinkerpath=」clang++.new」。全文分別只有一處,不要改錯了,你最好自己先備份乙份xcspec檔案。 

上面的命令要在下面的目錄裡面執行

$xcode_plugin/../plugins/xcode3core.ideplugin/contents/sharedsupport/developer/library/xcode/plug-ins/clang llvm 1.0.xcplugin/contents/resources

好了,現在就可以使用ccache+clang+llvm編譯windgame了。

ccache 利用快取加速編譯過程

原理 通過快取初次編譯過程中的結果,提高之後的編譯速度。使用 1 建立符號鏈結至gcc g c cc等 如 ln s ccache usr local bin gcc ln s ccache usr local bin g ln s ccache usr local bin cc ln s ccac...

c Cache 使用例項

建立快取項的檔案 快取key object物件 public static void insert string key,object obj 移除快取項的檔案 快取key public static void remove string key 建立快取項的檔案依賴 快取key object物件 ...

C Cache何時使用及使用方法

cache 即快取記憶體.那麼cache是怎麼樣提高系統效能與執行速度呢?是不是在任何情況下用cache都能提高效能?是不是cache用的越多就越好呢?我在近 期開發的專案中有所體會,寫下來當作總結也希望能跟大家一起 有錯誤的地方希望大家批評指正。1.cache 是怎麼樣工作的?cache 是分配在...