GN FAQ 翻譯chrome
(PS:花了將近半個小時,把GN的官方FAQ翻譯了一遍,有錯漏之處歡迎你們指正。)vim
GN 的文檔在哪裏?網絡
GN有大量的內置的幫助文檔,因此你能夠運行gn help命令查閱,可是你一樣能夠在「參考頁面」(PS:附件文檔包中的gn-reference.pdf)查閱所有幫助文檔。你一樣能夠查閱「快速入門指南」(PS:附件文檔包中的gn-quick_start.pdf)和「語言和操做細節」(PS:附件文檔包中的gn-language.pdf)。架構
我能夠生成XCode或者Visual Studio項目嗎?編輯器
你能夠用一次構建(PS: gn是兩階段構建的工具)爲XCode,Visual Studio,QTCreator和Eclipse生成帶有文件列表和目標的骨架(或包裝)項目,可是使用 Ninja執行實際的構建(PS:第二次構建)。你不能像使用GYP cloud那樣生成真的看起來和這些工具直接建立的同樣的項目。工具
瞭解詳細內容,請運行gn help gen。post
我如何生成通常的構建變種(build variants)?學習
在GN中,參數在構建目錄中,而不是在全局環境中。要編輯你的`out/Default`構建目錄下的參數,執行:ui
gn args out/Defaultgoogle
(PS: 這個命令會打開一個編輯器(默認是vim),查看的話用這個命令:gn args out/Default --list)
你能夠在這個文件中設置變量:
- 默認是debug構建,改成release構建,添加:is_debug = false
- 默認是靜態編譯,改成組件編譯,添加:is_component_build = true
- 默認是developer構建,改成offical構建,添加:is_offical_build = true
- 默認是chromium構建,改成Chrome構建,設置:is_chrome_build = true
我如何進行交叉編譯?
GN有健壯的交叉編譯和一次構建生成多個架構文件的支持。
詳細信息,請查閱GN交叉編譯文檔(cross_compile.md)。
我能夠控制默認編譯什麼目標嗎?
能夠!你能夠在頂層目錄的構建文件中建立一個叫作「default」的組目標,例如「//:default」,GN將會告訴ninja默認編譯這個目標,而不是編譯全部的目標。
有關於GN的公開演示講解嗎?
這裏有一個最近的,2015年的。從那以後,除了將gn變爲一個獨立的代碼倉以外,沒有什麼太大的變化,因此仍然是相關的。
-------------------------------- 分割線 --------------------------------
如下是我補充的兩個自問自答 ;-)
爲何翻譯這個FAQ?
學習知識講究追本溯源,具體到學習軟件開發,每每就是查閱官方文檔和代碼。
鴻蒙使用gn(Generate Ninja)做爲構建系統,而 gn 是由谷歌開發的,目前可以找到的文檔基本上都是英文的。
FAQ是幾個文檔中間比較短小的一篇,同時也是初學者容易有疑問的地方。
爲何搬運這些資料?
gn項目官網:https://gn.googlesource.com/gn/
因爲國內部分網絡條件下沒法訪問 googlesource.com ,這給廣大開發者查閱gn官方文檔帶了很大的不便。
本帖附件的幾個資料包分別是:
1. gn源碼包:gn.zip ;
2. gn文檔包:gn-docs.zip ;
3. 谷歌大佬關於GN分享的PPT:Using GN build.pdf
做者:許思惟
想了解更多內容,請訪問: 51CTO和華爲官方戰略合做共建的鴻蒙技術社區https://harmonyos.51cto.com