【Openharmony】【4.0R】hello程序之“lite_component.gni”模板使用方法

这篇具有很好参考价值的文章主要介绍了【Openharmony】【4.0R】hello程序之“lite_component.gni”模板使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Openharmony】【4.0R】"hello"程序之“lite_component.gni”模板使用方法

记录使用“lite_component.gni”模板编译hello程序
OH版本:4.0Release
内核版本:LiteOS-A
产品版本:qemu_small_system_demo

lite_component.gni模板

相信编译过Openharmony的应该对这个模板都不陌生,网上对该模板的示例使用也非常多。
该模板在使用时首先需要进行import

import("//build/lite/config/component/lite_component.gni")

实际上仔细阅读"//build/lite/config/component/lite_component.gni"这个文件内容,大概用法就已经都说得很明白了,至于一些细节,本人没有深究,毕竟看名字也知道,是一个“轻量-组件”模板对吧,相应内容这里不贴了,按照路径在源码里就可以找到。

hello程序代码

文件结构

hello_lite/
├── BUILD.gn
├── include
│   └── hello.h
├── src
│   └── hello.cpp
└── test
    └── test_hello.cpp

头文件

//hello.h
#include <iostream>
void helloTest();

动态库源文件

//hello.cpp
#include "hello.h"
void helloTest()
{
    std::cout << "Hello, lyxqg!" << std::endl;
    return;
}

主函数源文件

//test_hello.h
#include "hello.h"
int main()
{
    helloTest();
    return 0;
}

BUILD.gn

import("//build/lite/config/component/lite_component.gni")

lite_component("testhellolite")
{
    features = [":test_hello"]
}

libsources = [
    "src/hello.cpp",
]

config("testhelloliteinclude")
{
    include_dirs = [
        "include"
    ]
    cflags = [ "-Wall" ]
    cflags_cc = cflags
    ldflags = [ "-Wl,-rpath-link=$ohos_root_path/$root_out_dir" ]
}

lite_library("hellotest")
{
    sources = libsources
    if(ohos_kernel_type == "liteos_m"){
        target_type = "static_library"
    }
    else{
        target_type = "shared_library"
    }
    public_configs = [ ":testhelloliteinclude" ]
    #configs = [ ":testhelloliteinclude" ]
    #include_dirs = ["include"]
    output_name = "hellotestv1.0"
    output_dir = "${root_out_dir}/usr/hello"
}

exesources = [
    "test/test_hello.cpp"
]

executable("test_hello") {

  sources = exesources
  configs += [":testhelloliteinclude"]
  deps = [
    ":hellotest",
  ]
  output_name = "test_hello"
  output_dir = "${root_out_dir}/usr/hello"
}

为了编译的时候将这个程序编译进去,可以在qemu_small_system_demo目录下的BUILD.gn中新增这个部分

group("qemu_small_system_demo") {
  deps = [
    "apps",
    "hals/utils/sys_param:vendor.para",
    "init_configs",
    "//testhello/hello_lite:test_hello",
  ]
}

注意事项

  • lite_library内的public_configs

lite_library中如果想使用config(“xxxconfig”)配置来简化,那么关键字一定要使用public_configs,而不能用configs关键字。否则会出现如下错误:
cannot open crti.o: No such file or directory
unable to find library -lm
unable to find library -lc
cannot open crtn.o: No such file or directory
【Openharmony】【4.0R】hello程序之“lite_component.gni”模板使用方法,Openharmony4,鸿蒙
当然也可以不使用这种config,在lite_library内部所有需要的都写好也可以,这里config配置只不过在executable中可重复使用而已。

  • lite_library内的output_name

output_name非必须,如果设置该值,会以output_name的值生成库名称,本例中生成hellotestv1.0.so。
如果不写,则会以lite_library()括号内参数为库名称

  • lite_library内的output_dir

output_dir 非必须,如果设置该值,库文件在此路径下生成,本例中库文件将在out/arm_virt/qemu_small_system_demo/usr/hello中产生,否则默认路径为out/arm_virt/qemu_small_system_demo/usr/lib,这里的${root_out_dir}会被转义为out/arm_virt/qemu_small_system_demo/文件目录,不同build目标会有不同的产品路径

  • executable中的configs

executable中的configs关键字一定要用+=赋值,因为实际上executable有自己默认的configs模板,只用=会覆盖掉,系统会检查此处导致编译出错。

  • executable中的output_name
    output_name 非必须,如果设置该值,按照该值命名生成的可执行文件,本例中可执行文件为test_hello,否则按照executable()括号内的值命名

  • executable中的output_dir
    output_dir 非必须,如果设置该值,可执行文件在此路径下生成,本例中out/arm_virt/qemu_small_system_demo/usr/hello/bin,否则默认在out/arm_virt/qemu_small_system_demo/bin目录下生成。

特别提醒

如果使用了output_dir ,并且设置了一个特殊的文件目录,一定要在fs.yml中添加相应的文件系统配置,在编译过程中将程序及库文件打包至镜像内。否则系统镜像中看不到所编译的内容。请参考Openharmony fs.yml 配置文件

最后
【Openharmony】【4.0R】hello程序之“lite_component.gni”模板使用方法,Openharmony4,鸿蒙文章来源地址https://www.toymoban.com/news/detail-764347.html

到了这里,关于【Openharmony】【4.0R】hello程序之“lite_component.gni”模板使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • E2000/飞腾派运行OpenHarmony 4.0

    该项目介绍了如何在飞腾嵌入式开发平台上运行OpenHarmony 4.0 release标准系统。 该项目支持芯片内置提供的视频解码硬件加速,支持硬件光标加速,基于Linux kernel 5.10开发。 ├── device_board_phytium #飞腾开发板代码仓库 ├── device_soc_phytium #飞腾芯片代码仓库 ├── phytium_en

    2024年04月17日
    浏览(75)
  • openharmony开发最新4.0版本----介绍openharmony(基于api10 ,华为dev studio 4.0,分享学习过程中遇到的难题难点),学习笔记,持续更新

            DevEco Studio(OpenHarmony)使用指南:         HUAWEI DevEco Studio For OpenHarmony(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向OpenHarmony全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的Open

    2024年02月03日
    浏览(47)
  • OpenHarmony 4.0 源码编译hb 问题排查记录

    OS:Ubuntu 22.04 x86_64 下载好Openharmony 4.0Beta2 的源码 从错信息看是找到某个目录,hb 是python写的,所以打算看看源码是找个目录出错了,根据出错信息直接看源码文件。 查看python 代码可知报错原因是没找到 build/lite/hb_internal ,在OpenHamony 源码下确实没有发现有 build/lite/hb_internal

    2024年02月09日
    浏览(45)
  • OpenHarmony应用签名 - 系统应用签名(4.0-Release)

    开发环境:Windows 11 DevEco Studio 版本:DevEco Studio 4.0 Release(4.0.0.600) SDK 版本:4.0.10.15(Full SDK) 开发板型号:DAYU 200(RK3568) 系统版本:OpenHarmony-4.0-Release 示例工程:Applications_SystemUI OpenHarmony开源社区提供了标准系统上的部分系统应用,如桌面、SystemUI、设置等,为开发者提

    2024年04月11日
    浏览(41)
  • Hi3861 OpenHarmony 运行Hello World

    海思 hi3861 有2个型号:  Hi3861LV100 低功耗版 低功耗MCU Wi-Fi芯片,适用于智能门锁、智能猫眼等低功耗物联网智能产品。 Hi3861V100 标准版 MCU Wi-Fi芯片,适用于大小家电、电工照明等常电类物联网智能产品。 系统默认的是标准版,低功耗版好像是需要改下设置。越简单越好的原

    2024年02月20日
    浏览(38)
  • 【开源鸿蒙】下载 OpenHarmony 4.0 源代码和工具链

    本文介绍了如何下载开源鸿蒙(OpenHarmony)操作系统源码,该方法可以用于下载OpenHarmony最新开发版本(master分支)或者4.0 Release、3.2 Release等发布版本。 本文基于Ubuntu 22.04进行操作,Ubuntu其他版本也同样可行,包括 20.04, 18.04。 OpenHarmony架构图: 本节介绍如何准备命令行工具

    2024年04月13日
    浏览(92)
  • OpenHarmony 4.0 分布式软总线解析:设备发现与传输

    OpenHarmony 的分布式软总线子系统为 OpenHarmony 系统提供的通信相关的能力,包括:WLAN 服务能力、蓝牙服务能力、软总线、进程间通信 RPC(Remote Procedure Call)等通信能力。 其中主要包括: WLAN 服务:为用户提供 WLAN 基础功能、P2P(peer-to-peer)功能和 WLAN 消息通知的相应服务,

    2024年04月23日
    浏览(47)
  • OpenHarmony应用签名 - DevEco Studio 自动签名(4.0-Release)

    开发环境:Windows 11 DevEco Studio 版本:DevEco Studio 4.0 Release(4.0.0.600) SDK 版本:4.0.10.13 开发板型号:DAYU200(RK3568) 系统版本:OpenHarmony-4.0-Release 为了保证  OpenHarmony  应用的完整性和来源可靠,在应用构建时需要对应用进行签名。经过签名的应用才能在设备上安装、运行、和调

    2024年02月03日
    浏览(46)
  • OpenHarmony 4.0 Beta2新版本发布,邀您体验

    2023年8月3日,OpenAtom OpenHarmony(简称“OpenHarmony”)发布了Beta2版本,相较于历史版本我们持续完善ArkUI、文件管理、媒体、窗口、安全等系统能力、提升体验。欢迎开发者了解并升级使用,积极反馈宝贵建议、参与贡献,共同促进4.0版本的成熟。 为了方便社区开发者了解新版

    2024年02月09日
    浏览(41)
  • OpenHarmony—4.0图形HDI基础适配及点屏差异分析

    1.1 进程数量变化 新增加两个uhdf进程。allocator_host进程及composer_host进程。 删除了disp_gralloc_host 进程,并使用allocator_host替换。 uhdf添加进程配置如下: hdf_config/uhdf/device_info.hcs 1.2 拉起关系变化 composer 以前版本composer由render_service通过单例拉起,现在通过composer service拉起接口实现

    2024年02月22日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包