HarmonyOS 鸿蒙Next:如何使用CMake配置鸿蒙工具链后编译自己的C++代码生成armv8的so库

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:如何使用CMake配置鸿蒙工具链后编译自己的C++代码生成armv8的so库

请教一下大家,如何使用CMake配置鸿蒙的工具链后编译自己的C++代码编译出armv8的so库

这里需要适配鸿蒙,编译我们的sdk so库,怎么配置交叉编译呀。

7 回复
参考社区的mmkv适配,直接在cmake编译即可,不过有些能力可能不支持比如 zlib 之类的,推荐使用ohos-rs 
请问楼主有进展吗,目前我也遇到了相同的问题,想请教一下是否已经编译成功了

deveco studio就可以编,把代码放到工程里面配好cmakelist就行了
不想用deveco studio的话好像会麻烦一点

我看似乎有在windows上,用cmake 交叉编译armv8库。生成器用nijia,这种方式您了解吗

是可以的,用那套工具链就行了。但是CMake里面会有一些参数,你得把那些东西搞出来才会比较好用

这边还没找到具体的例子,我研究研究

在HarmonyOS鸿蒙Next系统中,使用CMake配置鸿蒙工具链并编译C++代码生成armv8的so库,可以按以下步骤操作:

  1. 安装并配置CMake

    • 确保系统中已安装CMake。
    • 创建一个CMakeLists.txt文件,指定C++源文件、编译选项及目标库。
  2. 设置工具链

    • 在CMakeLists.txt中,通过set(CMAKE_TOOLCHAIN_FILE <path_to_toolchain_file>)指定鸿蒙的工具链文件。
    • 确保工具链文件正确配置,指向鸿蒙SDK中的编译器、链接器等工具。
  3. 配置目标架构

    • 使用set(CMAKE_SYSTEM_PROCESSOR "armv8-a")(或其他armv8具体架构)指定目标处理器架构。
    • 确保编译器选项(如-march=armv8-a)正确设置以生成armv8指令集的代码。
  4. 编译生成so库

    • 在CMakeLists.txt中,通过add_library(<lib_name> SHARED <source_files>)添加库。
    • 运行cmakemake命令进行编译,生成armv8架构的so库。

如果CMake配置正确且工具链设置无误,上述步骤应能成功生成目标so库。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部