当前位置: 首页 > news >正文

移植bash到openharmony

1.交叉工具链

下载地址:

http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist

进入ohos-sdk-full,下载一个sdk版本,这里下载的版本是version-Master_Version-OpenHarmony_5.0.0.35-20240805_020232-ohos-sdk-full.tar.gz。

解压

tar -xf version-Master_Version-OpenHarmony_5.0.0.35-20240805_020232-ohos-sdk-full.tar.gz
cd ohos-sdk
cd linux
unzip native-linux-x64-5.0.0.37-Canary2.zip -d /home/ufo/arm/rk/openharmony/tools/native-5.0

配置环境变量

export OHOS_SDK=/home/ufo/arm/rk/openharmony/tools/native-5.0 # 此处是我的ohos_sdk解压目录,请替换为你自己的解压目录
export AR=${OHOS_SDK}/llvm/bin/llvm-ar
export AS=${OHOS_SDK}/llvm/bin/llvm-as
export LD=${OHOS_SDK}/llvm/bin/ld.lld
export RANLIB=${OHOS_SDK}/llvm/bin/llvm-ranlib
export STRIP=${OHOS_SDK}/llvm/bin/llvm-strip
export CC=${OHOS_SDK}/llvm/bin/clang
export CXX=${OHOS_SDK}/llvm/bin/clang++
export NM=${OHOS_SDK}/llvm/bin/llvm-nm
export OBJDUMP=${OHOS_SDK}/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/llvm/bin/llvm-objcopy
export CFLAGS="-fPIC -D__MUSL__=1 --target=aarch64-linux-ohos"
export CXXFLAGS="-fPIC -D__MUSL__=1 --target=aarch64-linux-ohos"

使用过其他版本的native,例如version-Master_Version-OpenHarmony_4.0.10.5-20230824_120941-ohos-sdk-full_monthly.tar.gz,但是编译出来的bash程序运行有问题,会报Signal 11错误。

2.下载bash源码

Index of /gnu/bash

版本使用bash-5.2.32

3.交叉编译bash源码
tar -xf bash-5.2.32.tar.gz
cd bash-5.2.32
./configure --prefix=${PWD}/_install --host=aarch64-linux --target=aarch64-linux-ohos --enable-static-link --enable-history --without-bash-malloc
make -j$(nproc)
make install

编译成功后在bash-5.2.32源码的_install/bin目录下生成可以执行文件bash。

4.测试

把bash-5.2.32源码下的_install/bin/bash文件复制到板卡

hdc shell mount -o rw,remount /
hdc file send Z:\bash /bin/
hdc shell chmod +x /bin/bash

执行测试

hdc shell
#
# bash
bash-5.2#

http://www.lryc.cn/news/429467.html

相关文章:

  • git stash详细教程
  • UDP网络攻击
  • 漏洞扫描的重要性,如何做好漏洞扫描服务
  • unity程序简易框架
  • Go小技巧易错点100例(十六)
  • 通过Golang实现中间人攻击,查看和修改https流量包
  • MySQL 安装与配置指南
  • android13布局查看工具 无源码查看布局 在线查找ui布局id
  • 【自动化测试必学语言】python:UnitTest框架
  • 大话LLM之向量数据库
  • EmguCV学习笔记 C# 2.2 Matrix类
  • [Windows CMD] 查看网络连接状态 netstat -na | findstr “TCP“
  • 「OC」视图控制器的懒加载策略
  • android studio 中 .gitignore 文件改动后 忽略的文件夹或文件无效
  • 鸿蒙 next 实现摄像头视频预览编码(一)
  • YOLO-V3
  • golang提案,内置 Go 错误检查函数
  • 零售业务产品系统应用架构设计(三)
  • 【GD32】从零开始学GD32单片机 | PMU电源管理单元+深度睡眠和待机例程(GD32F470ZGT6)
  • 公司员工电脑桌面太乱如何解决?桌面管理软件一招解决!
  • leetcode:2119. 反转两次的数字(python3解法)
  • 5.vue中axios封装工程化
  • 实验六:动态数码管实验
  • 《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 05网络虚拟化
  • 奥威BI数据可视化展示:如何充分发挥数据价值
  • jenkins工具配置
  • VAuditDemo文件漏洞
  • [Meachines] [Medium] poison LFI+日志投毒+VNC权限提升
  • EtherCAT运动控制器上位机开发之Python+Qt(三):PDO配置与SDO读写
  • MyBatis源码系列1(使用JDBC查询数据)