概述
本文仅以libxml2为为示例,演示利用DevEco Studio集成环境天生鸿蒙体系利用的动态库及头文件,用于其他项目开辟。
环境
体系: Windows11 X64
DevEco Studio Next Release 5.0.3.900 amd64
OpenHarmony SDK 12
关键点
1. 创建native工程
2. 下载开源代码到src/main/cpp目次
3. 修改cmake
4. 修改工程配置
5.构建
5.实行cmake --install .
示例演示
创建工程
选择NativeC++工程:
下载代码
从GNOME / libxml2 · GitLab下载开源代码代码,并防止入模块/src/main/cpp/目次中。 本文示例为保证代码完整性下载代码后直接添加到目次中,如利用git管理可采用git submodule add 方式直接添加到对应位置,后续更新库天生会更加方便。
修改CMakeList.txt
修改外部CMakeList.txt: 删除原始的add_library、target_link_libraries;增长set(LIBXML2_WITH_PYTHON OFF) set(CMAKE_INSTALL_PREFIX ${NATIVERENDER_ROOT_PATH}/../../../build/sdk/${CMAKE_BUILD_TYPE}/${OHOS_ARCH}) add_subdirectory(libxml20)
终极如下。
- # the minimum version of CMake.
- cmake_minimum_required(VERSION 3.5.0)
- project(LibExample)
- set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
- if(DEFINED PACKAGE_FIND_FILE)
- include(${PACKAGE_FIND_FILE})
- endif()
- include_directories(${NATIVERENDER_ROOT_PATH}
- ${NATIVERENDER_ROOT_PATH}/include)
- set(LIBXML2_WITH_PYTHON OFF)
- set(CMAKE_INSTALL_PREFIX ${NATIVERENDER_ROOT_PATH}/../../../build/sdk/${CMAKE_BUILD_TYPE}/${OHOS_ARCH})
- add_subdirectory(libxml2-master)
复制代码 删除的内容为删除Native工程模版中的示例代码及库天生。
添加的三行分别为:编译libxml2不带python、设置安装目次、添加libxml2的源码目次(此中包含完整编译用CMakeList.txt文件)
工程其他修改
删撤除src/main/cpp/napi_init.cpp文件
删除src/main/cpp/types/index.d.ts中的所有内容、删除src/main/ets/pages/index.ets中 import testNapi from 'libxxxx.so'和 hilog.info(0x0000, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(2, 3));语句
修改build-profile.json5: externalNativeOptions节点中修改arguments 值为“-DCMAKE_BUILD_TYPE=Debug”,添加 "abiFilters": ["arm64-v8a","x86_64"]
- {
- "apiType": "stageMode",
- "buildOption": {
- "externalNativeOptions": {
- "path": "./src/main/cpp/CMakeLists.txt",
- "arguments": "-DCMAKE_BUILD_TYPE=Debug",
- "cppFlags": "",
- "abiFilters": [
- "arm64-v8a",
- "x86_64"
- ]
- }
- },
- "buildOptionSet": [
- {
- "name": "release",
- "arkOptions": {
- "obfuscation": {
- "ruleOptions": {
- "enable": false,
- "files": [
- "./obfuscation-rules.txt"
- ]
- }
- }
- },
- "nativeLib": {
- "debugSymbol": {
- "strip": true,
- "exclude": []
- }
- }
- },
- ],
- "targets": [
- {
- "name": "default"
- },
- {
- "name": "ohosTest",
- }
- ]
- }
复制代码 构建
点击构建,构建xxx模块
cmake install
打开终端,并进入.cxx/default/default/debug/arm64-v8a/
实行cmake.exe --install .
同理可到x86_64目次实行
所有产物(include、lib等)目次为最初配置的目次:build/sdk/Debug
遗留题目
配置天生release,修改build-profile.json5中相应的内容为:
- "arguments": "-DCMAKE_BUILD_TYPE=Release",
- "cppFlags": "-fstack-protector-all -D_FORTIFY_SOURCE=2 -O2 -ftrapv -s",
复制代码 但是天生的位置仍然为.cxx/default/default/debug,在此中实行cmake install 后sdk目次是正常的Release
示例代码
代码链接:LibExample: lib示例
产物SDK的利用
待更新。
关注C++鸿蒙sdk仓库更新。后续将同一采用NDK+脚本直接编译
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |