大家好,今天我們來談一談編程時一個很有趣的話題——編譯順序。
首先呢,得看看這個"vendor/xradio/xr806/config.json",這可是個關鍵角色。它就像是一個交通警察,告訴編譯器:“嘿,你得先編譯這個,然后再編譯那個。”其中的"product_name"就是交通警察手中的指揮棒,它決定了執行hb set時會出現的選項。
而"device_company"、"board"、"kernel_type"這三位則是一同決定了代碼的行走路徑。
當你用hb set選定了"wifi_skylark"后,就會在根目錄中生成一個叫做ohos_config.json的文件。這個文件就像是一張地圖,上面清楚地標明了各個代碼文件應該放置的位置。這樣,編譯器就知道去哪里找這些代碼了。
然后,當你執行hb build -f命令時,HarmonyOS的編譯腳本就會從device_path中獲取編譯工具和編譯選項,從product_path下尋找BUILD.gn文件。這個過程就像是在準備一場演出,編譯工具是音響設備,編譯選項是音量調節器,而BUILD.gn文件則是節目單。
BUILD.gn文件中的內容可是相當精彩的。其中build_ext_component("libSDK")就像是一個大明星,有很多依賴項需要先行準備。這些依賴項就像是它的伴舞團隊和樂隊,得提前到位才能確保演出的順利進行。
同樣的道理也適用于group("xr806")和ohosdemo/BUILD.gn中的內容。這些文件和文件夾都需要按照一定的順序進行編譯,才能確保整個程序的順利運行。
最后呢,當你打開hello_demo/BUILD.gn時,你會看到import("http://device/xradio/xr806/liteos_m/config.gni")這句話。這就像是在演出開始前,主持人走上臺說:“感謝大家的支持,現在我們開始演出!”然后,static_library("app_hello")就像是第一個節目,閃亮登場!
你想想看,一群代碼如果不按照順序來,豈不是亂成一鍋粥了?好在Harmony給我們提供了明確的編譯順序,讓代碼們可以乖乖排隊,一個個等待被編譯。
所以說啊,編譯順序可是個大學問。只有掌握了正確的順序,才能讓代碼們和諧共處,共同演繹出一場精彩的程序運行秀!
以XR806_OpenHarmony為例,當你通過hb set選定wifi_skylark后,會在根目錄中生成一個叫ohos_config.json
的文件。這個文件里主要包括以下內容:
{
"root_path": "/home/workspace/Harmony_XR806",
"board": "xr806",
"kernel": "liteos_m",
"product": "wifi_skylark",
"product_path": "/home/workspace/Harmony_XR806/vendor/xradio/xr806",
"device_path": "/home/workspace/Harmony_XR806/device/xradio/xr806/liteos_m"
}
然后,當你執行hb build -f時,HarmonyOS的編譯腳本就會從device_path
中獲取編譯工具和編譯選項,然后從product_path
下尋找BUILD.gn
文件。
現在讓我們看看這個BUILD.gn
文件的內容:
build_ext_component("libSDK") {
exec_path = rebase_path(".", root_build_dir)
outdir = rebase_path("$root_out_dir")
command = "./build.sh ${outdir}"
deps = [
"http://kernel/liteos_m:kernel", #(3)
"os:liteos_glue",
"adapter/hals:adapter",
"adapter/console:app_console",
"ohosdemo:ohosdemo", #(2)
]
}
group("xr806") {
deps = [
":libSDK" #(1)
]
}
這里有三個需要注意的地方:
1.deps
關鍵字代表執行group("xr806")前需要先執行libSDK,也就是build_ext_component("libSDK")
。
2.在執行build_ext_component("libSDK")
前,需要先找到ohosdemo文件夾下的BUILD.gn
,并且這個文件里會有ohosdemo的定義。
3.//
代表絕對路徑,可以理解為根目錄。比如//kernel/liteos_m
代表根目錄下的kernel/liteos_m
文件夾。
最后,關于演示部分:
XR806_OpenHarmony串口默認配置為:波特率115200,無校驗,8位數據位,1位停止位。開發板成功連接PC上對串口調試助手后按下開發板的復位按鍵串口輸出。這段文字描述了如何配置串口以及如何通過串口輸出信息。
當你連接開發板到PC并使用串口調試助手進行調試時,你可以通過發送復位信號來啟動應用程序,然后你將看到“Hello World!”消息輸出到串口上。
-
調節器
+關注
關注
5文章
832瀏覽量
46368 -
串口輸出
+關注
關注
0文章
16瀏覽量
7473 -
OpenHarmony
+關注
關注
25文章
3663瀏覽量
16159 -
xr806
+關注
關注
0文章
14瀏覽量
1314
發布評論請先 登錄
相關推薦
評論