场景描述
对于c库编译问题,应用经常会遇到如下业务诉求
场景一:基于HarmonyOS编译开源C库
场景二:开源c库编译完成后的集成
方案描述
场景一:
需要使用开源c库
lycium的使用说明:lycium的特点就是自动化编译,只需要一个./build.sh命令就可以完成编译,下面的编译例子(openssl)代码库是通过hpkbuild脚本从github或者gitee上面拉取,在hpkbuild脚本中已经默认提供了一套编译默认的配置,也可以按照需求修改。
lycium的范围说明:在 开源c库仓 已经提供了一套默认配置,针对lycium自动化编译脚本的使用。lycium其涵盖了三种构建方式,不在c仓的需要针对该库的编译方式手动编译或者手动写脚本。
方案
使用lycium交叉编译框架将已经移植过来的c库编译,以及针对某些特定库在使用交叉编译过程中会遇到的一些常见问题。
我们从头开始演示如何编译移植过来的openssl库
lycium编译环境准备
1.对应平台下载 ohos sdk 并进行解压
2.配置环境变量 如Mac环境举例
3.拷贝编译工具
在使用lycium工具前,需要将这些编译命令拷贝到SDK对应的目录下,具体操作如下:
cd lycium/Buildtools # 进入到工具包目录
sha512sum -c SHA512SUM # 可校验工具包是否正常, 若输出"toolchain.tar.gz: OK"则说明工具包正常,否则说明工具包异常,需重新下载
tar -zxvf toolchain.tar.gz # 解压拷贝编译工具
cp toolchain/* ${OHOS_SDK}/native/llvm/bin # 将命令文件拷贝到工具链的native/llvm/bin目录下
#是将toolchain.tar.gz解压出来的命令文件拷贝到工具链的native/llvm/bin目录下
快速编译开源C库
1.将 tpc_c_cplusplus C库仓克隆或者下载zip包下载 以我的Mac目录为例子 cd到仓库lycium 目录
2…/build.sh openssl 开始编译 并等待ALL JOBS DONE!!
3.编译好的openssl会生成在 lyc