




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2.1.1鴻蒙設(shè)備開發(fā)硬件環(huán)境要求通過本節(jié)學(xué)習(xí),您可以:了解鴻蒙設(shè)備開發(fā)硬件環(huán)境要求鴻蒙設(shè)備開發(fā)硬件環(huán)境要求1.開發(fā)終端硬件環(huán)境鴻蒙系統(tǒng)的編譯工作是在電腦上進行的,對電腦的硬件配置有一定的要求。最低配置要求:內(nèi)存8G,硬盤空間256G;推薦配置要求:內(nèi)容16G,硬盤空間500G。鴻蒙設(shè)備開發(fā)硬件環(huán)境要求2.設(shè)備硬件環(huán)境-輕量系統(tǒng)系列芯片(1)Hi3861芯片Hi3861是海思半導(dǎo)體開發(fā)的一款高度集成的2.4GHzSoCWiFi芯片,可用于智能家電等物聯(lián)網(wǎng)智能終端領(lǐng)域。典型應(yīng)用場景包括智慧路燈、智慧物流、人體紅外等連接類設(shè)備。(2)BES2600芯片BES2600芯片是恒玄科技設(shè)計的一款集成Cortex-M33Star雙核和Cortex-A7雙核的IC芯片。典型應(yīng)用場景包括智能硬件、帶屏類模組產(chǎn)品,如音箱、手表等。鴻蒙設(shè)備開發(fā)硬件環(huán)境要求2.設(shè)備硬件環(huán)境-輕量系統(tǒng)系列芯片(3)ASR582X芯片ASR582X系列芯片是翱捷科技開發(fā)的一款低功耗、高性能、高度集成的支持1T1RWi-Fi+BLE的ComboSoC芯片。廣泛應(yīng)用于智能照明、安全、遙控、電器、可穿戴式電子設(shè)備、網(wǎng)狀網(wǎng)絡(luò)、WLAN位置感知設(shè)備、無線局域網(wǎng)定位系統(tǒng)信標、工業(yè)無線控制、傳感器網(wǎng)絡(luò)等各類行業(yè)的終端產(chǎn)品。(4)GR5515芯片GR5515是匯頂科技開發(fā)的GR551x系列芯片,廣泛應(yīng)用于物聯(lián)網(wǎng)(IoT)和智能穿戴設(shè)備領(lǐng)域。鴻蒙設(shè)備開發(fā)硬件環(huán)境要求2.設(shè)備硬件環(huán)境-小型系統(tǒng)系列芯片(1)STM32MP157A芯片STM32MP157A芯片是由意法半導(dǎo)體公司推出的一款嵌入式處理器,具有高度集成、功能豐富、性能強勁等特點。廣泛應(yīng)用于工業(yè)控制、智能家居、智能物聯(lián)網(wǎng)等領(lǐng)域。(2)Hi3516芯片Hi3516是海思半導(dǎo)體針對高清IPCamera產(chǎn)品應(yīng)用開發(fā)的一款專業(yè)高端SOC芯片。典型應(yīng)用場景包括帶屏智能設(shè)備,如帶屏冰箱、車機等。鴻蒙設(shè)備開發(fā)硬件環(huán)境要求2.設(shè)備硬件環(huán)境-標準系統(tǒng)系列芯片(1)RK3568芯片RK3568芯片是瑞芯微開發(fā)的一款中高端的通用型SOC,支持安卓11和linux系統(tǒng),主要面向物聯(lián)網(wǎng)網(wǎng)關(guān)、NVR存儲、工控平板、工業(yè)檢測、工控盒、卡拉OK、云終端、車載中控等行業(yè)定制市場。(2)Hi3751V351芯片Hi3751V351芯片是海思半導(dǎo)體開發(fā)的全球制式FHD(全高清)智能電視主處理芯片,典型應(yīng)用場景包括智能電視、智能家居中控屏、智能顯示器、商顯廣告屏、交互白板、工業(yè)控制屏、打印機屏、白電屏、健身器顯示屏等。(3)AmlogicA311D芯片AmlogicA311D芯片是晶晨半導(dǎo)體開發(fā)的一款A(yù)I應(yīng)用處理器,典型應(yīng)用場景包括智能家居、AI人臉識別、工業(yè)控制、智慧車載、多媒體處理、AI邊緣計算等。謝謝2.1.2鴻蒙設(shè)備開發(fā)軟件環(huán)境要求通過本節(jié)學(xué)習(xí),您可以:了解鴻蒙設(shè)備開發(fā)軟件環(huán)境要求鴻蒙設(shè)備開發(fā)軟件環(huán)境要求在目前階段,鴻蒙系統(tǒng)大部分的開發(fā)板源碼還不支持在Windows系統(tǒng)環(huán)境下進行編譯,如Hi3861系列開發(fā)板。因此,就需要使用Linux系統(tǒng)的編譯環(huán)境對源碼進行編譯。在鴻蒙設(shè)備開發(fā)場景中,可以搭建一套Windows+Linux交叉編譯的開發(fā)環(huán)境,在Windows系統(tǒng)和Linux系統(tǒng)中都安裝DevEcoDeviceTool工具。Windows系統(tǒng)Linux系統(tǒng)鴻蒙設(shè)備開發(fā)環(huán)境鴻蒙設(shè)備開發(fā)軟件環(huán)境要求通過Windows平臺的DevEcoDeviceTool可視化界面進行相關(guān)操作,使用遠程連接的方式對接Ubuntu下的DevEcoDeviceTool(可以不安裝VisualStudioCode),然后對Ubuntu下的源碼進行開發(fā)、編譯、燒寫等操作。鴻蒙設(shè)備開發(fā)軟件環(huán)境要求對windows系統(tǒng)的具體要求如下:Windows系統(tǒng)要求:Windows1064位系統(tǒng)推薦內(nèi)存8GB及以上硬盤100GB及以上對Linux系統(tǒng)的具體要求如下:Linux系統(tǒng)要求Ubuntu20.04及以上版本內(nèi)存推薦16GB及以上Windows和Ubuntu系統(tǒng)上安裝的DevEcoDeviceTool為最新版本,且版本號需相同謝謝2.1.3鴻蒙設(shè)備開發(fā)環(huán)境的搭建通過本節(jié)學(xué)習(xí),您可以:了解鴻蒙設(shè)備開發(fā)環(huán)境的搭建進行鴻蒙開發(fā)環(huán)境的搭建鴻蒙設(shè)備開發(fā)環(huán)境的搭建1.安裝虛擬機在VirtualBox官網(wǎng)Downloads頁面/wiki/Downloads,可以找到不同操作系統(tǒng)版本的VirtualBox安裝包的下載方式。單擊“Windowshosts”鏈接,即可下載Windows版的VirtualBox安裝包。雙擊安裝包文件,根據(jù)安裝向?qū)У闹敢瓿砂惭b。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境在VirtualBox啟動后,單擊頁面上的“新建(N)”按鈕,彈出“新建虛擬電腦”設(shè)置向?qū)В骸懊Q”文本框輸入名稱“文件夾”位置自由設(shè)置,建議放在C盤之外的其他盤下“虛擬光盤”暫時跳過,不選擇“類型”選擇Linux單擊“下一步”按鈕,彈出硬件設(shè)置頁面。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境在硬件頁面設(shè)置虛擬電腦的內(nèi)存大小和處理器數(shù)量?!皟?nèi)存大小”根據(jù)當前主機的實際物理內(nèi)存進行設(shè)置,例如設(shè)置為8192MB,處理器根據(jù)需要設(shè)置。單擊“下一步”按鈕,彈出“虛擬硬盤”設(shè)置向?qū)?。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境在“虛擬硬盤”設(shè)置向?qū)е?,建議設(shè)置為200GB,這樣避免在后期使用的時候出現(xiàn)空間不足的情況。點擊“下一步”按鈕,彈出摘要頁面,顯示虛擬電腦配置信息。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(1)創(chuàng)建環(huán)境摘要頁面,顯示虛擬電腦配置信息。點擊完成按鈕,Ubuntu虛擬機及虛擬硬盤就創(chuàng)建完成。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(2)設(shè)置網(wǎng)絡(luò)點擊VirtualBox管理頁面的設(shè)置,左側(cè)欄選擇網(wǎng)絡(luò),連接方式選擇“橋接網(wǎng)卡”,選擇該方式的前提是電腦使用的是有線網(wǎng)絡(luò)。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(3)選擇鏡像文件選擇虛擬盤,選擇電腦本地的Ubuntu-20.04鏡像文件,鏡像文件可在華為云開源鏡像站進行下載/home。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝設(shè)置全部完成之后,點擊管理頁面的啟動圖標啟動虛擬機,稍等片刻后出現(xiàn)Ubuntu安裝向?qū)ы撁?。小技巧:先點擊右上角關(guān)閉安裝,在桌面右鍵選擇DisplaySettings,修改分辨率,保存后回到桌面,雙擊桌面的Ubuntu安裝包繼續(xù)安裝。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝左側(cè)欄選擇“中文(簡體)”,點擊右下角繼續(xù)。在鍵盤布局選擇頁面,默認是美式鍵盤布局,通常無須修改。點擊“繼續(xù)”進入下一個頁面。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝在“更新和其他軟件”設(shè)置頁面,建議選擇最小安裝。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝進入“安裝類型”設(shè)置頁面,默認選擇“清除整個磁盤并安裝Ubuntu”選項,單擊“現(xiàn)在安裝”按鈕。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝彈出確認分區(qū)對話框,點擊“繼續(xù)”按鈕,進入時區(qū)選擇頁面,這里選擇“shanghai”。點繼續(xù)進入用戶設(shè)置界面。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝用戶設(shè)置頁面如下:“您的姓名”:設(shè)置登錄頁面顯示的用戶名稱“您的計算機名”:設(shè)置主機名,例如填virtualBox“選擇一個用戶名”:設(shè)置用戶名,例如可以填user“選擇一個密碼”和“確認您的密碼”:設(shè)置密碼和確認密碼鴻蒙設(shè)備開發(fā)環(huán)境的搭建2.安裝Ubuntu系統(tǒng)(4)安裝內(nèi)容填寫完成后,點擊“繼續(xù)”按鈕開始安裝過程,安裝向?qū)@示進度條,等待幾分鐘后,安裝過程完成,點擊“現(xiàn)在重啟”。重啟過程中系統(tǒng)提示“Pleaseremovetheinstallationmedium,thenpressENTER:”,按回車鍵。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2、安裝Ubuntu系統(tǒng)(5)環(huán)境設(shè)置重啟成功后顯示Ubuntu系統(tǒng)登錄頁面,輸入設(shè)置的密碼進入系統(tǒng)。點擊左下角顯示應(yīng)用程序,選擇軟件和更新。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2、安裝Ubuntu系統(tǒng)(5)環(huán)境設(shè)置在軟件和更新設(shè)置頁面,點擊“中國的服務(wù)器”后下拉菜單,在選擇下載服務(wù)器頁面選擇“”,點擊“選擇服務(wù)器”按鈕。鴻蒙設(shè)備開發(fā)環(huán)境的搭建2、安裝Ubuntu系統(tǒng)(5)環(huán)境設(shè)置彈出認證框輸入密碼,然后點擊關(guān)閉,在新彈出的窗口點擊重新載入更新軟件緩存。經(jīng)過以上的一系列操作,Ubuntu系統(tǒng)就安裝好了。鴻蒙設(shè)備開發(fā)環(huán)境的搭建3.搭建Ubuntu環(huán)境(1)修改Ubuntu終端環(huán)境右鍵打開終端窗口執(zhí)行命令,確認輸出結(jié)果為bash。如果輸出結(jié)果不是bash,需要進行設(shè)置,修改Ubuntushell為bash。
命令:ls-l/bin/sh在終端窗口中執(zhí)行命令,輸入密碼,然后選擇No,將Ubuntushell由dash修改為bash。
命令:sudodpkg-reconfiguredash鴻蒙設(shè)備開發(fā)環(huán)境的搭建3.搭建Ubuntu環(huán)境(2)下載DevEcoDeviceTool3.0ReleaseLinux版本,下載完成后,解壓軟件包,對文件夾進行賦權(quán)。進入DevEcoDeviceTool軟件包目錄,執(zhí)行命令解壓軟件包,其中devicetool-linux-tool-01.zip為軟件包名稱,請根據(jù)實際進行修改。命令:unzipdevicetool-linux-tool-01.zip進入解壓后的文件夾,執(zhí)行命令,賦予安裝文件可執(zhí)行權(quán)限,其中devicetool-linux-tool-01.sh請根據(jù)實際進行修改命令:chmodu+xdevicetool-linux-tool-01.sh鴻蒙設(shè)備開發(fā)環(huán)境的搭建3.搭建Ubuntu環(huán)境(3)安裝DevEcoDeviceTool,其中devicetool-linux-tool-01.sh請根據(jù)實際進行修改。命令:sudo./devicetool-linux-tool-01.sh在安裝過程中,會自動檢查Python是否安裝,且要求Python為3.8~3.9版本。如果不滿足,則安裝過程中會自動安裝,提示“Doyouwanttocontinue?”,請輸入“Y”后繼續(xù)安裝。安裝完成后,當界面輸出“DevecoDeviceToolsuccessfullyinstalled.”時,表示DevEcoDeviceTool安裝成功。鴻蒙設(shè)備開發(fā)環(huán)境的搭建4.搭建windows環(huán)境通過Windows系統(tǒng)遠程訪問Ubuntu環(huán)境,先在Windows系統(tǒng)中安裝DevEcoDeviceTool,以便使用Windows平臺的DevEcoDeviceTool可視化界面進行相關(guān)操作。鴻蒙設(shè)備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(1)安裝SSH服務(wù)并獲取遠程訪問的IP地址在Ubuntu系統(tǒng)中,打開終端工具,安裝SSH服務(wù)。
命令:sudoapt-getinstallopenssh-server啟動SSH服務(wù)。
命令:sudosystemctlstartssh獲取當前用戶的IP地址,用于Windows系統(tǒng)遠程訪問Ubuntu環(huán)境。
命令:ifconfig鴻蒙設(shè)備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(2)安裝RemoteSSH打開Windows系統(tǒng)下的VisualStudioCode,點擊左側(cè)擴展按鈕
,在插件市場的搜索輸入框中輸入“remote-ssh”。點擊Remote-SSH后面的安裝按鈕,安裝Remote-SSH。鴻蒙設(shè)備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(3)遠程連接Ubuntu環(huán)境打開Windows系統(tǒng)的VisualStudioCode,點擊,在遠程資源管理器頁面點擊+按鈕。在彈出的SSH連接命令輸入框中輸入“sshusername@ip_address”,其中ip_address為要連接的遠程計算機的IP地址,username為登錄遠程計算機的帳號。在彈出的輸入框中,選擇SSHconfiguration文件,選擇默認的第一選項即可鴻蒙設(shè)備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(3)遠程連接Ubuntu環(huán)境在SSHTARGETS中,找到遠程計算機,點擊打開遠程計算機。在彈出的輸入框中,選擇Linux,然后選擇Continue,輸入登錄遠程計算機的密碼,連接遠程計算機。鴻蒙設(shè)備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(4)注冊訪問Ubuntu環(huán)境的公鑰安裝Git工具插件。打開Gitbash命令行窗口,執(zhí)行命令,生成SSH公鑰,其中username和ip填寫連接Ubuntu系統(tǒng)時需要的參數(shù)。命令:ssh-keygen-trsa命令:ssh-copy-id-i~/.ssh/id_rsa.pubusername@ip鴻蒙設(shè)備開發(fā)環(huán)境的搭建5.配置windows遠程訪問Ubuntu環(huán)境(4)注冊訪問Ubuntu環(huán)境的公鑰在VisualStudioCode中,點擊遠程連接的設(shè)置按鈕,并選擇打開config文件。在config配置文件中添加SSHKey文件信息鴻蒙設(shè)備開發(fā)環(huán)境的搭建6.安裝Samba服務(wù)(1)在Ubuntu中,打開終端執(zhí)行以下命令,安裝Samba服務(wù)。
命令:sudoaptinstallsamba(2)輸入命令,打開Samba配置文件。
命令:sudogedit/etc/samba/smb.conf鴻蒙設(shè)備開發(fā)環(huán)境的搭建6.安裝Samba服務(wù)在Samba配置文件末尾添加如下內(nèi)容:[home]#在Windows中映射的根文件夾名稱(此處以“home”為例)comment=UserHomes#共享信息說明path=/home/xxx#共享目錄,/home/xxxx根據(jù)“~”目錄的pwd路徑更改guestok=no#是否拒絕匿名訪問writable=yes#是否可寫available=yes#是否可獲取browseable=yes#是否可瀏覽directorymask=0775#默認創(chuàng)建的目錄權(quán)限createmask=0775#默認創(chuàng)建的文件權(quán)限鴻蒙設(shè)備開發(fā)環(huán)境的搭建6.安裝Samba服務(wù)(3)輸入命令,創(chuàng)建Samba用戶。
命令:sudosmbpasswd-ausername命令執(zhí)行后,終端顯示“NewSMBpassword:”提示輸入密碼。輸入密碼后終端顯示“RetypenewSMBpassword:”再次輸入密碼確認,當終端顯示“Addaduseruser.”表示Samba用戶添加完成。(4)輸入命令,重啟Samba服務(wù)。
命令:sudoservicesmbdrestart鴻蒙設(shè)備開發(fā)環(huán)境的搭建7.映射Samba服務(wù)的共享目錄到本地磁盤(1)在終端中輸入“ifconfig”,查看虛擬機的IP地址。(2)打開我的電腦,在計算機下找到映射網(wǎng)絡(luò)驅(qū)動器,彈出映射網(wǎng)絡(luò)驅(qū)動器窗口。文件夾位置填寫Samba服務(wù)地址和共享目錄。鴻蒙設(shè)備開發(fā)環(huán)境的搭建7.映射Samba服務(wù)的共享目錄到本地磁盤(3)在彈出的“輸入網(wǎng)絡(luò)憑據(jù)”對話框中輸入Samba用戶名和密碼,勾選“記住我的憑據(jù)”選項,單擊確定。用戶名和密碼輸入完成后,即可在Windows下看到Linux的共享目錄,并可對其進行訪問。鴻蒙設(shè)備開發(fā)環(huán)境的搭建8.安裝Docker環(huán)境(1)在終端輸入Docker安裝命令。
命令:sudoaptinstalldocker.io鴻蒙設(shè)備開發(fā)環(huán)境的搭建8.安裝Docker環(huán)境(2)安裝OpenHarmony編譯的Docker環(huán)境包。
命令:sudodockerpull/openharmony-docker/openharmony-docker:1.0.0謝謝2.2鴻蒙系統(tǒng)構(gòu)建工具鏈通過本節(jié)學(xué)習(xí),您可以:了解鴻蒙系統(tǒng)構(gòu)建工具鏈了解Ninja構(gòu)建工具了解Ninja常用語法了解GN常用語法鴻蒙系統(tǒng)構(gòu)建工具鏈1.什么是工具鏈?工具鏈本質(zhì)上是工具和鏈。工具的目標是生成可以運行的程序或庫文件。為了達到該目標,內(nèi)部需要經(jīng)歷編譯過程和鏈接過程。編譯過程:編譯的輸入:程序代碼;編譯的輸出:目標文件;編譯需要的工具:編譯器GCC。鏈接過程:鏈接的輸入:程序運行所依賴的庫文件或某個庫所依賴的另一個庫文件;鏈接的輸出:程序的可執(zhí)行文件,或者可被調(diào)用的完整的庫文件;鏈接需要的工具:鏈接器,即LD。鴻蒙系統(tǒng)構(gòu)建工具鏈2.什么是構(gòu)建工具?構(gòu)建工具是一個可編程的工具,它描述內(nèi)容包括:整個工程如何編譯、連接、打包等規(guī)則,工程中的哪些源文件需要編譯以及如何編譯,需要創(chuàng)建哪些庫文件以及如何創(chuàng)建庫文件。構(gòu)建一個項目通常包含了依賴管理、測試、編譯、打包、發(fā)布等流程,構(gòu)建工具可以自動化進行這些操作,從而為我們減少這些繁瑣的工作。其中構(gòu)建工具提供的依賴管理能夠可以自動處理依賴關(guān)系。例如一個項目需要用到依賴A,A又依賴于B,那么構(gòu)建工具就能幫我們導(dǎo)入B,而不需要我們手動去尋找并導(dǎo)入。鴻蒙系統(tǒng)構(gòu)建工具鏈3.鴻蒙構(gòu)建工具鏈鴻蒙內(nèi)核LliteOS的編譯構(gòu)建工具是hb,hb是ohos-build的簡稱,ohos是openharmonyOS的簡稱。鴻蒙構(gòu)建系統(tǒng)是由Python、GN、Ninja、makefile等幾個部分組成:Python:對參數(shù)、環(huán)境變量、文件進行操作,負責(zé)編譯前的準備工作和為GN收集命令參數(shù)。GN:GN即GenerateNinja,用于生成Ninja文件。Ninja:Ninja是一個致力于速度的小型編譯系統(tǒng)。Makefile:Makefile文件中包括了編譯和處理規(guī)則,通過Makefile工具解析Makefile文件中的命令來指導(dǎo)整個工程的編譯過程。Ninja構(gòu)建工具1.Ninja簡介Ninja是Google的一名程序員推出的注重速度的構(gòu)建工具,是一個專注于速度的小型構(gòu)件系統(tǒng),只需拷貝一個可執(zhí)行程序ninja就可以執(zhí)行,不需要依賴任何庫。Ninja的設(shè)計目的:是為了使編譯過程更快,Ninja類似構(gòu)建工具make,make即GNUMake,一個用于決定如何使用命令完成最終目標構(gòu)建的程序。Make本身不知道如何具體的完成目標的構(gòu)建工作,它需要通過makefile中的描述來決定目標構(gòu)建的具體方案,根據(jù)makefile中的規(guī)則執(zhí)行命令,最后完成編譯輸出。Ninja構(gòu)建工具2.Ubuntu環(huán)境安裝NinjaNinja編譯需要依賴re2c,re2c是一款語法分析器。在Linux系統(tǒng)中右鍵打開終端,終端中輸入命令安裝re2c。
命令:sudoapt-getinstallre2c檢測re2c版本。
命令:re2c--versionNinja構(gòu)建工具3.Ubuntu環(huán)境安裝Ninja安裝Ninja,在終端中輸入下載命令。
命令:gitclone/ninja-build/ninja.git對Ninja進行安裝和編譯。在終端中輸入命令:
命令:cdninja
命令:./configure.py--bootstrap檢測Ninja安裝情況。
命令:sudocp./ninja/usr/bin
命令:ninja--version
Ninja常用語法1.基本概念edge(邊):build語句,可以指定目標(target)輸出(output)、規(guī)則(rule)與輸入(input),是編譯過程拓撲圖中的一條邊(edge)。target(目標):編譯過程需要差生的目標,由build語句指定。output(輸出):build語句的前半段,是target的另一種稱呼。input(輸入):build語句的后半段,用于產(chǎn)生output的文件或目標,另一種稱呼是依賴。rule(規(guī)則):通過指定command與一些內(nèi)置變量,決定如何從輸入產(chǎn)生輸出。Pool:一組rule或edge,通過指定其depth,可以控制并行上限。scope(作用域):變量的作用范圍,有rule與build語句的塊級,也有文件級別。
Ninja常用語法2.關(guān)鍵字build:定義一個edge。rule:定義一個rule。pool:定義一個pool。default:指定默認的一個或多個target。include:添加一個ninja文件到當前scope。subninja:添加一個ninja文件,其scope與當前文件不同。phony:一個內(nèi)置的特殊規(guī)則,指定非文件的target。
Ninja常用語法3.rule、build及poolrule:一個rule就是通過${in}輸入的目標列表,生成${out}的輸出目標列表,目標一般是文件。rulenamecommand=echo${in}>${out}var=strbuild:build代碼塊,是編譯過程中的一個edge。其中,foo是output,bar是input,“:”后面第一個位置的phony是rule,var是自定義變量。buildfoo:phonybarvar=str
Ninja常用語法pool:限制一些非常消耗硬件資源的edge同時執(zhí)行。通過pool=example,在rule或build代碼塊中指定對應(yīng)的edge所屬的pool為example。由于example的depth=2,所以a、b、c三個target最多只有2個可以同時生成。poolexampledepth=2ruleecho_varcommand=echo${var}>>${out}pool=examplebuilda:echo_varvar=abuildb:echo_varvar=bbuildc:echo_varvar=cGN常用語法GN是Ninja構(gòu)建文件的元構(gòu)建工具,能夠構(gòu)建出Ninja的.ninja文件,比起Ninja原本的構(gòu)建命令,GN能夠比較好地進行依賴管理,并且能夠很方便的輸出構(gòu)建圖譜。GN使用非常簡單的動態(tài)類型語言。語言的類型包括:布爾(true,false),64位有符號整數(shù),字符串,列表(任何其他類型),范圍(Scopes),條件語句,循環(huán),函數(shù)調(diào)用。GN常用語法字符串:列表:a="mypath"b="$a/foo.cc"http://b->"mypath/foo.cc"c="foo${a}bar.cc"http://c->"foomypathbar.cc"a=["first"]a+=["second"]//["first","second"]a+=["third","fourth"]//["first","second","third","fourth"]b=a+["fifth"]//["first","second","third","fourth","fifth"]GN常用語法條件語句:if(is_linux||(is_win&&target_cpu=="x86")){source-=["something.cc"]}else{...}GN常用語法循環(huán):函數(shù)調(diào)用:Foreach(i,mylist){print(i)//Note:iisacopyofeachelement,notareferencetoit.}print("helloworld")assert(is_win,"ThisshouldonlybeexecutedonWindows")static_library("mylibrary"){sources=["a.cc"]}謝謝2.2.1鴻蒙構(gòu)建工具鏈介紹通過本節(jié)學(xué)習(xí),您可以:了解鴻蒙系統(tǒng)構(gòu)建工具鏈鴻蒙構(gòu)建工具鏈1.什么是工具鏈?工具鏈本質(zhì)上是工具和鏈。工具的目標是生成可以運行的程序或庫文件。為了達到該目標,內(nèi)部需要經(jīng)歷編譯過程和鏈接過程。編譯過程:編譯的輸入:程序代碼;編譯的輸出:目標文件;編譯需要的工具:編譯器GCC。鏈接過程:鏈接的輸入:程序運行所依賴的庫文件或某個庫所依賴的另一個庫文件;鏈接的輸出:程序的可執(zhí)行文件,或者可被調(diào)用的完整的庫文件;鏈接需要的工具:鏈接器,即LD。鴻蒙構(gòu)建工具鏈2.什么是構(gòu)建工具?構(gòu)建工具是一個可編程的工具,它描述內(nèi)容包括:整個工程如何編譯、連接、打包等規(guī)則,工程中的哪些源文件需要編譯以及如何編譯,需要創(chuàng)建哪些庫文件以及如何創(chuàng)建庫文件。構(gòu)建一個項目通常包含了依賴管理、測試、編譯、打包、發(fā)布等流程,構(gòu)建工具可以自動化進行這些操作,從而為我們減少這些繁瑣的工作。其中構(gòu)建工具提供的依賴管理能夠可以自動處理依賴關(guān)系。例如一個項目需要用到依賴A,A又依賴于B,那么構(gòu)建工具就能幫我們導(dǎo)入B,而不需要我們手動去尋找并導(dǎo)入。鴻蒙構(gòu)建工具鏈3.鴻蒙構(gòu)建工具鏈鴻蒙內(nèi)核LliteOS的編譯構(gòu)建工具是hb,hb是ohos-build的簡稱,ohos是openharmonyOS的簡稱。鴻蒙構(gòu)建系統(tǒng)是由Python、GN、Ninja、makefile等幾個部分組成:Python:對參數(shù)、環(huán)境變量、文件進行操作,負責(zé)編譯前的準備工作和為GN收集命令參數(shù)。GN:GN即GenerateNinja,用于生成Ninja文件。Ninja:Ninja是一個致力于速度的小型編譯系統(tǒng)。Makefile:Makefile文件中包括了編譯和處理規(guī)則,通過Makefile工具解析Makefile文件中的命令來指導(dǎo)整個工程的編譯過程。謝謝2.2.2
Ninja構(gòu)建工具介紹通過本節(jié)學(xué)習(xí),您可以:了解Ninja構(gòu)建工具Ninja構(gòu)建工具1.Ninja簡介Ninja是Google的一名程序員推出的注重速度的構(gòu)建工具,是一個專注于速度的小型構(gòu)建系統(tǒng),只需拷貝一個可執(zhí)行程序ninja就可以執(zhí)行,不需要依賴任何庫。Ninja的設(shè)計目的:是為了使編譯過程更快,Ninja類似構(gòu)建工具make,make即GNUMake,一個用于決定如何使用命令完成最終目標構(gòu)建的程序。Make本身不知道如何具體的完成目標的構(gòu)建工作,它需要通過makefile中的描述來決定目標構(gòu)建的具體方案,根據(jù)makefile中的規(guī)則執(zhí)行命令,最后完成編譯輸出。Ninja構(gòu)建工具2.Ubuntu環(huán)境安裝NinjaNinja編譯需要依賴re2c,re2c是一款語法分析器。在Linux系統(tǒng)中右鍵打開終端,終端中輸入命令安裝re2c。
命令:sudoapt-getinstallre2c檢測re2c版本。
命令:re2c--versionNinja構(gòu)建工具3.Ubuntu環(huán)境安裝Ninja安裝Ninja,在終端中輸入下載命令。
命令:gitclone/ninja-build/ninja.git對Ninja進行安裝和編譯。在終端中輸入命令:
命令:cdninja
命令:./configure.py--bootstrap檢測Ninja安裝情況。
命令:sudocp./ninja/usr/bin
命令:ninja--version謝謝2.2.3
Ninja常用語法通過本節(jié)學(xué)習(xí),您可以:了解Ninja常用語法
Ninja常用語法1.基本概念edge(邊):build語句,可以指定目標(target)輸出(output)、規(guī)則(rule)與輸入(input),是編譯過程拓撲圖中的一條邊(edge)。target(目標):編譯過程需要差生的目標,由build語句指定。output(輸出):build語句的前半段,是target的另一種稱呼。input(輸入):build語句的后半段,用于產(chǎn)生output的文件或目標,另一種稱呼是依賴。rule(規(guī)則):通過指定command與一些內(nèi)置變量,決定如何從輸入產(chǎn)生輸出。Pool:一組rule或edge,通過指定其depth,可以控制并行上限。scope(作用域):變量的作用范圍,有rule與build語句的塊級,也有文件級別。
Ninja常用語法2.關(guān)鍵字build:定義一個edge。rule:定義一個rule。pool:定義一個pool。default:指定默認的一個或多個target。include:添加一個ninja文件到當前scope。subninja:添加一個ninja文件,其scope與當前文件不同。phony:一個內(nèi)置的特殊規(guī)則,指定非文件的target。
Ninja常用語法3.rule、build及poolrule:一個rule就是通過${in}輸入的目標
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國食品及飼料添加劑行業(yè)運營狀況及發(fā)展趨勢分析報告
- 2025-2030年中國風(fēng)力發(fā)電機組葉片裝置市場發(fā)展趨勢與十三五規(guī)劃研究報告
- 2025-2030年中國防火玻璃產(chǎn)業(yè)前景展望及未來投資規(guī)劃研究報告
- 2025-2030年中國鑄造粘結(jié)材料行業(yè)競爭格局及前景趨勢分析報告
- 2025-2030年中國金屬船舶市場前景規(guī)劃及發(fā)展趨勢預(yù)測報告
- 2025-2030年中國道路護欄行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025-2030年中國補血保健品市場十三五規(guī)劃與發(fā)展策略分析報告
- 2025-2030年中國脫臭餾出物的分離提取產(chǎn)物行業(yè)運行現(xiàn)狀及前景規(guī)劃分析報告
- 2025-2030年中國納米二氧化鈦市場運行狀況及發(fā)展趨勢預(yù)測報告
- 沐足店長合同范例
- 母嬰護理的職業(yè)道德
- 《商務(wù)溝通-策略、方法與案例》課件 第二章 口頭溝通
- 運灰安全管理制度模版(2篇)
- 2024年生態(tài)環(huán)境局公務(wù)員考試600題內(nèi)部選題庫(A卷)
- 2024年湖南省公務(wù)員錄用考試《行測》真題及答案解析
- 工商企業(yè)管理畢業(yè)論文的范文
- 《物權(quán)法》本科題集
- 新能源汽車驅(qū)動電機及控制系統(tǒng)檢修課件 學(xué)習(xí)情境6:電機控制系統(tǒng)檢修
- 廚房菜品出品標準培訓(xùn)
- 2024年福建省公務(wù)員錄用考試《行測》試題及答案解析
評論
0/150
提交評論