鴻蒙構建系統——gn官方FAQ翻譯,以及gn官方文檔分享


此文轉載自:https://my.oschina.net/u/4857646/blog/4753635

GN FAQ 翻譯

(PS:花了將近半個小時,把GN的官方FAQ翻譯了一遍,有錯漏之處歡迎大家指正。)

 

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。

 

我如何生成一般的構建變種(build variants)?

在GN中,參數在構建目錄中,而不是在全局環境中。要編輯你的`out/Default`構建目錄下的參數,執行:

gn args out/Default

(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM