OpenHarmony 第三方组件(第三方库)添加到编译系统方式理解(L2) 原创 精华
碼磚民工
发布于 2022-1-12 19:33
浏览
10收藏
@toc
简介
- 调用第三方组件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" ]
}
三方组件调用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"
}
- ohos.build添加的内容
{
"subsystem": "sub_example",
"parts": {
"partB": {
"module_list": [
...
"//test/example/partB/mythird_use:mythird_use"
],
...
}
编译
- 第三组件编译命令:
./build.sh --product-name Hi3516DV300 --ccache --build-target mythird_lib
- 三方组件调用可执行文件编译命令:
./build.sh --product-name Hi3516DV300 --ccache --build-target mythird_use
测试运行
编译成功后,可以把编译好的libmythird_lib.z.so和mythird_use用hdc_std.exe发送到Hi3516DV300开发板中去运行,在串口终端上输出三方组件的调用测试结果。
- 修改系统目录权限,目录能读能写:
mount -o remount,rw /
- libmythird_lib.z.so放入开发板/system/lib目录下:
hdc_std.exe file send Z:\out\ohos-arm-release\common\common\libmythird_lib.z.so /system/lib
- mythird_use放入开发板本人自建/data/test目录下:
hdc_std.exe file send Z:\out\ohos-arm-release\sub_example\partB\mythird_use /data/test
- 修改成可执行权:
chmod 0711 /data/test/mythird_use
- 运行可执行程序:
/data/test/mythird_use
红色部分是第三方组件输出,文档里面涉及到的内容没有完全展示,想查看源码内容可以下载:
【源代码】
重点关注目录如下
- third_party\mythird目录
- example\partB\mythird_use目录
三方库引用参考 【如何使用别人的闭源库】
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-1-12 20:15:05修改
赞
9
收藏 10
回复
相关推荐
大牛分享,不错