# sysroot - [简介](#section11660541593) - [目录](#section161941989596) - [约束](#section119744591305) - [编译构建](#section137768191623) - [使用说明](#section68313135353) - [相关仓](#section1371113476307) ## 简介 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](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83.md), [for HI3516DV300](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/Hi3516%E6%90%AD%E5%BB%BA%E7%8E%AF%E5%A2%83.md))。 - 编译用户程序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。 ## 相关仓 [内核子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%86%85%E6%A0%B8%E5%AD%90%E7%B3%BB%E7%BB%9F.md) **prebuilts\_lite\_sysroot**