鸿蒙开源组件—— 系统头文件和标准库

jiecho
发布于 2021-7-21 16:06
浏览
0收藏

sysroot

简介

sysroot是一个用作clang编译器查找标准库和头文件的根目录,其中libc库是由开源库musl编译得到。

目录

/prebuilts/lite/sysroot
├── build                   # 工具链构建目录,包括构建脚本
├── thirdparty              # 临时生成的工具链构建所需的三方头文件
├── usr                     # 对外C库及头文件
│   ├── include             # 对外头文件存放目录
│   │  └── arm-liteos       # 工具链对应的芯片架构
│   └── lib                 # 对外C库存放目录
│       └── arm-liteos      # 工具链对应的芯片架构

约束

只适用于OpenHarmony内核。

编译构建

musl库bug修复或者新版本更新时,需要重新编译构建新的libc库。分别执行build目录下的thirdparty_headers.sh和build_musl_clang.sh脚本即可编译构建出新的libc库,存放于/prebuilts/lite/sysroot/build/usr目录下,然后替换/prebuilts/lite/sysroot/usr目录下对应的头文件及libc库即可。

使用说明

  • 将clang编译器bin目录设置到环境变量中,编译环境的搭建可以参考(for HI3518EV300, for HI3516DV300)。
  • 编译用户程序helloworld.c示例如下:
    clang -o helloworld helloworld.c -target arm-liteos -L ~/llvm/lib/clang/9.0.0/lib/arm-liteos/a7_softfp_neon-vfpv4 --sysroot=/usr/xxx/OS/prebuilts/lite/sysroot/​

其中,编译器目录为~/llvm。

相关仓

内核子系统

prebuilts_lite_sysroot

openharmony-prebuilts_lite_sysroot-maste.zip 16.96M 36次下载
已于2021-7-21 16:06:08修改
2
收藏
回复
举报
1条回复
按时间正序
/
按时间倒序
鸿蒙开发
鸿蒙开发

这么好的内容,为什么没人顶

回复
2022-3-15 20:19:35
回复
    相关推荐