简介
- 调用第三方组件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