当前位置: 首页 > 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.mrgr.cn/news/3382.html

相关文章:

  • MySQL对事务的支持
  • flutter 键盘弹出 都会重新Build
  • ESLint详解及在WebStorm中的应用
  • GX Works2的使用方法
  • C++STL初阶(10):list的简易实现(下)
  • appium+python自动化测试
  • ChatGPT 3.5/4.0 新手使用手册(详细版)
  • 快讯 | 苹果拟于2026年推出1000美元桌面机器人,集成Siri智能技术
  • 如何通过SSH远程登录到docker容器内部
  • 人力总监的这一举动,让企业陷入了前所未有的困境
  • JQuery $.when $.deferred
  • CV学习笔记6-图像样本增强
  • 如何清理win备用内存?备用内存过大怎么办?
  • 【llamaindex和GraphRAG】
  • JS中构造函数继承问题注意事项总结
  • 备份docker所有镜像
  • 数据分析面试常见50个问题及解答要点
  • 力扣 411周赛
  • vue3+ts+vite+pinia+element-plus搭建一个项目
  • 武汉漂流记-第一集