成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

跟著小白一起學鴻蒙之第一個OpenHarmony程序

系統 OpenHarmony
今天我們來熟悉下OpenHarmony的編譯框架和如果自己開發一個HelloWord程序。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

今天我們來熟悉下OpenHarmony的編譯框架和如果自己開發一個HelloWord程序。

簡介

OpenHarmony的編譯過程分析

graph LR
build.sh --> build.py --> hb --> gn
hb --> ninja
hb --> clang

#跟著小白一起學鴻蒙# [二]第一個OpenHarmony程序-開源基礎軟件社區

名詞解釋

gn: generate ninja工具,在out目錄下生成ninja編譯文件*.ninja,文件位置在prebuilts/build-tools/linux-x86目錄里。

$ ./gn --help
Commands (type "gn help <command>" for more help):
analyze: Analyze which targets are affected by a list of files.
args: Display or configure arguments declared by the build.
check: Check header dependencies.
clean: Cleans the output directory.
desc: Show lots of insightful information about a target or config.
format: Format .gn files.
gen: Generate ninja files.
help: Does what you think.
ls: List matching targets.
meta: List target metadata collection results.
path: Find paths between two targets.
refs: Find stuff referencing a target or file.
……

ninja:構建工具,根據gn生成的*.ninja文件進行編譯構建,文件位置在prebuilts/build-tools/linux-x86目錄里。

./ninja --help
usage: ninja [options] [targets...]
if targets are unspecified, builds the 'default' target (see manual).
options:
--version print ninja version ("1.10.1")
-v, --verbose show all command lines while building
-C DIR change to DIR before doing anything else
-f FILE specify input build file [default=build.ninja]
-j N run N jobs in parallel (0 means infinity) [default=10 on this system]
-k N keep going until N jobs fail (0 means infinity) [default=1]
-l N do not start new jobs if the load average is greater than N
-n dry run (don't run commands but act like they succeeded)
-d MODE enable debugging (use '-d list' to list modes)
-t TOOL run a subtool (use '-t list' to list subtools)
terminates toplevel options; further flags are passed to the tool
-w FLAG adjust warnings (use '-w list' to list warnings)

clang:編譯器,同gcc兼容。

1、查看.gn并增加應用輸出

路徑為:oh32/third_party/libuv/BUILD.gn,找到如下位置增加。

//靜態庫
ohos_static_library("uv_static") {
deps = [ ":libuv_source" ]
public_configs = [ ":libuv_config" ]
subsystem_name = "thirdparty"
part_name = "libuv"
}
//動態庫
ohos_shared_library("uv") {
deps = [ ":libuv_source" ]
public_configs = [ ":libuv_config" ]
subsystem_name = "thirdparty"
part_name = "libuv"
if (is_ohos) {
output_extension = "so"
}
install_images = [
"system",
"updater",
]
}
//增加的新應用
ohos_executable("helloworld") {
sources = [ "helloword.c",]
}
2、增加helloworld.c

在oh32/third_party/libuv目錄下增加helloworld.c。

3、增加helloworld編譯生成的入口

在test/xts/acts/graphic/BUILD.gn里增加deps,如下:

import("http://build/ohos_var.gni")
group("graphic") {
testonly = true
if (is_standard_system) {
deps = [
"webGL:webGL_hap_test",
"windowStage:ActsWindowStageTest",
"windowstandard:window_hap_test",
"http://third_party/libuv:helloworld", #引入helloworld程序編譯
]
} else {
deps = [
"appaccount:appaccount_hap",
"osaccount:osaccount_hap",
]
}
}

源碼根目錄執行:

./build.sh --product-name rk3568

源碼根目錄執行:

./build.sh --product-name rk3568 --gn-args build_xts=true --build-target "acts" --gn-args is_standard_system=true
5、編譯完成后生成的第三方庫驗證程序helloworld使用流程

runtest庫文件會輸出helloworld,路徑為:out/rk3568/common/common。

~/oh32/out/rk3568/common/common$ ls
libc libimagePixelmap.so libnativerender.so libsqlite.z.so libteststring.so libusb_shared.z.so helloworld

使用方式如下:

1. 拷貝helloworld到板子上
hdc_std.exe file send helloworld /data/local/tmp
//2. 登錄板子,運行helloworld,如果第一次需要給權限
pc端:hdc_std.exe shell
板子:cd /data/local/tmp
板子:chmod +x helloworld
板子:./helloworld

結果:

#./helloworld
hello world!#

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-09-30 14:08:26

Hap應用鴻蒙

2022-08-19 19:02:20

開源鴻蒙操作系統

2023-01-03 15:09:10

鴻蒙常用工具

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-06 15:39:16

鴻蒙主干代碼

2022-09-28 13:57:41

鴻蒙開源

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2022-12-05 15:02:14

鴻蒙用戶鑒權

2022-11-22 15:15:46

Wi-Fi鴻蒙

2022-11-28 15:42:39

分布式軟總線鴻蒙

2022-11-25 16:48:54

鴻蒙Stage HAP

2022-09-16 15:22:16

測試套件鴻蒙

2022-11-24 14:34:41

Hap程序鴻蒙

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-10 14:47:04

藍牙應用鴻蒙

2023-02-27 16:30:32

鴻蒙開源協議分析

2023-03-30 09:19:54

SELinux安全子系統

2023-03-15 16:19:03

BinderIPC工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清在线精品一区二区三区 | 亚洲区一区二 | 久久精品中文字幕 | 欧美精品一区二区在线观看 | 欧美不卡一区二区 | 在线成人免费观看 | 精品国产91亚洲一区二区三区www | 天天干狠狠操 | 久久手机在线视频 | 久久成人一区 | 一区二区三区视频在线 | 成人久久久久 | 成人精品鲁一区一区二区 | 在线观看三级av | www.天天操.com| 91精品国产乱码久久久久久久久 | 亚洲精品一二三 | 国产黄色大片在线免费观看 | 精品欧美激情精品一区 | 国产日韩免费观看 | 99色综合 | 日韩中文一区二区三区 | 亚洲美女一区二区三区 | 国产专区免费 | 久久国产精品-国产精品 | 自拍偷拍亚洲一区 | av在线免费观看网站 | 欧美成年网站 | 操人网 | 久久涩涩 | 国产精品久久久久无码av | www精品美女久久久tv | 欧美日韩不卡 | 亚洲国产精品日韩av不卡在线 | 狠狠亚洲 | 久久精品天堂 | 国产一在线 | 国产精品亚洲第一 | 欧美日韩综合视频 | 午夜精品久久久久99蜜 | 中国一级特黄毛片大片 |