ninja 是google的一名程式設計師推出的注重速度的構建工具,一般在unix/linux上的程式通過make/makefile來構建編譯,而ninja通過將編譯任務並行組織,大大提高了構建速度。
ninja的目標是成為匯程式設計序。
構建系統在需要做出決策時變得緩慢。當您處於編輯 - 編譯週期時,您希望它盡可能快 - 您希望構建系統執行必要的最少工作以確定需要立即構建的內容。
ninja包含描述任意依賴圖所需的最基本功能。它缺乏語法使得無法表達複雜的決策。
相反,ninja旨在與生成其輸入檔案的單獨程式一起使用。生成器程式(如./configure
在autotools專案中找到的)可以分析系統依賴性並盡可能多地做出盡可能多的決策,以便增量構建保持快速。超越自動工具,甚至構建時決定,比如「我應該使用哪個編譯器標誌?」 或「我應該構建除錯或發布模式二進位制檔案?」 屬於.ninja
檔案生成器。
設計目標:
一些明確的非目標:
重申一下,ninja比其他構建系統更快,因為它非常簡單。您必須告訴ninja在建立專案.ninja
檔案時要做什麼。
apt-get install ninja-build
安裝re2c:
yum install autoconf
git clone
cd re2c./autogen.sh
./configure makemake install
以上如果沒有報錯的話安裝完畢了,因為re2c作為基礎依賴,所以這裡採用預設安裝,上面的安裝說明頁面也給出了詳細的安裝細節。
git clone ninja
github上有提供以下兩種安裝的命令:
這裡我們採用python的安裝方式,較為方便
./configure.py --bootstrap
等待完成即可
現在可以執行./configure.py --help
檢視幫助,直接執行./configure.py --bootstrap
進行編譯,
編譯完成之後,當前目錄下會有ninja的可執行檔案,執行./ninja -h
可以檢視幫助
ninja比較精簡,只需要乙個可執行檔案即可,現在可以做軟鏈或者複製到/usr/bin下面就可以直接呼叫了,比如:
cp ninja /usr/bin/
然後可以直接使用 ninja 命令,這樣就安裝好了。
ninja構建系統入門
Android Q使用ninja快速編譯模組
隨著android版本的更迭,模組的 越來越多,單編的時間也需要的越來越多,特別是framework等大體量模組,使用mm單編一次有時候需要半個小時甚至更長。還好google提供了一種新的快速編譯方式,ninja 具體使用方法為 prebuilts build tools linux x86 bin...
webrtc編譯機制ninja相關分享
ninja c out default這個是編譯,編譯之前要下 gclient sync和安裝依賴軟體.build install build deps.sh還有生成專案檔案python webrtc build gyp webrtc.py 生成專案檔案有兩種方式,一種 gn 用gn gen out...
嘗試新的構造系統 Ninja
ninja 是 chrome 專案的構建工具,用來替換經典工具 make,目前這個開源工具已經被很多其它專案採用。據專案作者描述,建立這個新的構建工具,主要是為了提公升大型專案的編譯速度。由於 ninja 的設計目標之一是 必須易於嵌入大型構建系統 所以,像寫 makfile 那樣手寫規則檔案,並不...