一、编译三方库
鸿蒙需要使用lycium进行交叉编译。ycium是一款协助开发者通过shell语言实现C/C++三方库快速交叉编译,并在OpenHarmony 系统上快速验证的编译框架工具。开发者只需要设置对应C/C++三方库的编译方式以及编译参数,通过lycium就能快速的构建出能在OpenHarmony 系统运行的二进制文件。
环境准备
下载OHOS SDK
配置环境变量
export OHOS_SDK=/home/ohos/tools/OH_SDK/ohos-sdk/linux # 此处SDK的路径使用者需配置成自己的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目录下
下载lycium
git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1
编译三方库
编译
切换到lycium目录 cd lycium ./build.sh openssl
编译成功后会输出ALL JOBS DONE
生成的三方库存放在lycium/usr目录下
可以在tpc_c_cplusplus-master/thirdparty/openssl/HPKBUILD文件中,修改编译脚本,如输出架构等。
二、鸿蒙集成三方库
-
新建native c++module
-
三方库放在native/src/main/cpp/thirdparty目录下
-
编辑CMakeList文件,引入三方库和头文件
# 配置连接 target_link_libraries(native PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/rtmpdump/${OHOS_ARCH}/lib/librtmp.a) target_link_libraries(native PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl/${OHOS_ARCH}/lib/libssl.a) target_link_libraries(native PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl/${OHOS_ARCH}/lib/libcrypto.a) #将三方库的头文件加入工程中 target_include_directories(native PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/rtmpdump/${OHOS_ARCH}/include) target_include_directories(native PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/openssl/${OHOS_ARCH}/include)
-
编写napi接口
在src/main/cpp/types/libnative/Index.d.ts文件编写需要暴露的接口
export const alloc: () => number;
在src/main/cpp/napi_init.cpp文件中会自动添加接口声明
根据业务需求自行实现功能。至此,ets即可调用native层代码