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

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

相關文章
相關標籤/搜索