简介
CMake是一个跨平台的构建工具,用于管理构建过程、编译、链接和打包软件项目,它可以生成Makefile等用于不同操作系统和编译器的构建脚本。CMake的配置过程是跨平台的,因此可以在不同的操作系统上运行,例如Linux、Windows和macOS。
CMake构建过程可分为以下三个主要步骤:
- 配置(Configuration):配置阶段是CMake解析CMakeLists.txt文件的过程。在配置阶段,CMake会读取CMakeLists.txt文件,并执行其中的命令。CMakeLists.txt文件是CMake的核心,其定义了项目的构建规则和依赖关系。
- 生成(Generation):生成阶段是CMake根据配置阶段的结果,生成实际构建文件的过程。在生成阶段,CMake会将CMakeLists.txt文件中定义的构建规则和依赖关系转为构建工具可以理解的形式。
- 构建(Build):构建阶段是使用构建工具(如Make或DevEco Studio)根据生成的构建文件,编译源代码并链接生成目标文件的过程。在构建阶段,构建工具会读取生成的构建文件,按照其中定义的规则和依赖关系,执行实际的编译和链接操作。
CMake构建三方库适配流程
本小节介绍如何在Linux环境下,使用CMake构建工具通过ohos sdk编译cJSON三方库源码,生成ohos平台三方库的so及二进制文件。
环境准备
-
首先需要Linux编译环境。
开发者可以选择熟悉的发行版来进行环境搭建,这里以Ubuntu为例,Ubuntu目前主要支持Ubuntu18.04和Ubuntu20.04(Ubuntu22.04暂不支持)。
-
HarmonyOS SDK镜像下载:从DevEco Studio的SDK Manager中获取SDK,或通过[CI平台] 进行下载。
-
进入SDK文件所在目录,使用tar -zxvf解压SDK文件。
随着版本更新,SDK版本可能会有变动,开发者可自行下载最新版本,此处以4.0.10.5版本为例。
owner@ubuntu:/mnt/e/ohosSDK$ tar -zxvf version-Master_Version-OpenHarmony_4.0.10.5-20230824_120921-ohos-sdk-public_monthly.tar.gz
-
进入到SDK的linux目录,解压工具包。
owner@ubuntu:/mnt/e/ohosSDK$ cd ohos-sdk/linux
owner@ubuntu:/mnt/e/ohosSDK/ohos-sdk/linux$ for i in *.zip;do unzip ${i};done # 通过for循环一次解压所有的工具包
owner@ubuntu:/mnt/e/ohosSDK/ohos-sdk/linux$ ls
ets