在openharmony中编译部署早期vi工具(附带vi工具源码)

概述

为了验证下openharmony中对文件的操作和原始的linux有没有什么区别,发现默认的镜像中没有编译文件的工具(例如vi、Nano等),所以从网上找了个比较早期的vi工具的源码,进行部署验证。

系统版本:openharmony5.0.0

开发板:dayu200

编译环境:ubuntu22

部署路径: //vendor/hihope/rk3568/samples

源码目录

创建//vendor/hihope/rk3568/samples/02_vi目录,并添加如下文件:

02_vi
├── vi.c	# .c源代码
├── BUILD.gn	    # GN文件

其中,BUILD.gn表示编译脚本,vi.c表示编译源文件。

创建BUILD.gn

编辑BUILD.gn文件。

import("//build/ohos.gni")
ohos_executable("vi") {
  sources = [ "vi.c" ]		# 参与编译的源代码文件
  part_name = "vi"			# 模块名称
  install_enable = true					# 安装到系统中
}

✒️注意:

(1)BUILD.gn中所有的TAB键必须转化为空格,否则会报错。如果自己不知道如何规范化,可以:

# 安装gn工具
sudo apt-get install ninja-build
sudo apt install generate-ninjas
# 规范化BUILD.gn
gn format BUILD.gn

在这里插入图片描述

(2)可执行程序的名称

ohos_executable("vi")中的vi为可执行程序的名称,表明OpenHarmony编译时将编译一个可执行程序vi。

创建源代码

vi的简易版本的源代码可直接下载。代码中的备注比较详细,就不再赘述了。由于我没有做过类似的项目,但是从代码里还是学到了一些东西,最近工作重点是openharmony相关的,所以暂时不展开了。

在编译过程中报了如下两个错误:

问题一:unsihned char *不能转换为const char *

在这里插入图片描述

简单粗暴的加了个强制转换解决的

在这里插入图片描述

问题二:代码中未使用的变量会报如下错误:

在这里插入图片描述

直接删除/屏蔽即可解决

部署说明

首先,在ohos.build(即主编译文件)添加需要编译的目录samples。在//vendor/hihope/rk3568/ohos.build添加编译模块系统名称。

{
  "parts": {
    "product_rk3568": {
      "module_list": [
        "//vendor/hihope/rk3568/default_app_config:default_app_config",
        "//vendor/hihope/rk3568/image_conf:custom_image_conf",
        "//vendor/hihope/rk3568/preinstall-config:preinstall-config",
        "//vendor/hihope/rk3568/resourceschedule:resourceschedule",
        "//vendor/hihope/rk3568/etc:product_etc_conf",
        "//vendor/hihope/rk3568/hals/audio:hdf_audio_config",
        "//vendor/hihope/rk3568/hals/codec/:hdf_codec_config",
        "//vendor/hihope/rk3568/hdf_config/uhdf:hdf_config",
        "//vendor/hihope/rk3568/window_config:window_config",
        "//vendor/hihope/rk3568/samples:samples"
      ]
    }
  },
  "subsystem": "product_hihope"
}

在samples/BUILD.gn文件添加一行编译引导语句。

import("//build/ohos.gni")
group("samples") {
  deps = [
    "02_vi:vi",
  ]
}

"02_vi:vi",该行语句表示引入//vendor/hihope/rk3568/samples/02_vi参与编译。

编译命令

./build.sh --product-name rk3568 --build-target vi

验证是否成功:

在这里插入图片描述

手动传输

将执行文件拷贝出来并放到终端中

从虚拟机中拷出执行文件(vi)

zcc@ubuntu22:~/oh5.0.0$ sz out/rk3568/exe.unstripped/applications/prebuilt_hap/vi

通过hdc工具拷贝至终端中

hdc.exe file send .\vi /data/local/tmp/

在这里插入图片描述

运行程序

系统启动后,运行命令:

vi

可实现vi的基本操作指令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值