简介
- 调用第三方组件sqlite的时候,以为跟普通模块一样,有BUILD.gn,也有对应ohos.build,subsystem名称 和 parts名称,实际没有ohos.build,这跟其他模块不一样,刚开始接触不理解。
- 通过third_party中三方组件添加到编译系统,以及调用第三方组件的简单例子,让初学者大概了解第三方组件如何加入到编译系统中去。
第三组件demo
- 编译之后的名称:libmythird_lib.z.so
- 三方组件路径:third_party\mythird
- 编译配置:third_party\mythird\BUILD.gn
# 三组件没有写sub_example和part_name
# 编译后输出目录:out\ohos-arm-release\common\common
ohos_shared_library("mythird_lib") {
sources = [
"src/mythird.c"
]
public_configs = [ ":mythird_config" ]
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
三方组件调用demo
- 编译之后的路径:out\ohos-arm-release\sub_example\partB\mythird_use
- 代码目录:test\example\partB\mythird_use
- 编译配置路径: test\example\partB\mythird_use\BUILD.gn
import("//build/ohos.gni")
ohos_executable("mythird_use") {
sources = [
"src/main.c"
]
deps = [
"//third_party/mythird:mythird_lib" # 依赖第三组件,也就把第三组件加入到了编译系统
]
install_enable = true
part_name = "partB"
subsystem_name = "sub_example"
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- ohos.build添加的内容
{
"subsystem": "sub_example",
"parts": {
"partB": {
"module_list": [
...
"//test/example/partB/mythird_use:mythird_use"
],
...
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
编译
第三组件编译命令:
./build.sh --product-name Hi3516DV300 --ccache --build-target mythird_lib
- 1.
三方组件调用可执行文件编译命令:
./build.sh --product-name Hi3516DV300 --ccache --build-target mythird_use
- 1.
测试运行
编译成功后,可以把编译好的libmythird_lib.z.so和mythird_use用hdc_std.exe发送到Hi3516DV300开发板中去运行,在串口终端上输出三方组件的调用测试结果。
- 修改系统目录权限,目录能读能写:
mount -o remount,rw /
- 1.
- libmythird_lib.z.so放入开发板/system/lib目录下:
hdc_std.exe file send Z:\out\ohos-arm-release\common\common\libmythird_lib.z.so /system/lib
- 1.
- mythird_use放入开发板本人自建/data/test目录下:
hdc_std.exe file send Z:\out\ohos-arm-release\sub_example\partB\mythird_use /data/test
- 1.
- 修改成可执行权:
chmod 0711 /data/test/mythird_use
- 1.
- 运行可执行程序:
/data/test/mythird_use
- 1.
