HarmonyOS C++模块引用解决方案

在多模块(module)场景下,ets模块可以通过模块oh-package.json5直接引用另外一个模块。不知道c++ 模块在引用另外一个c++模块(module)的时候,是否有官方的解决方案?

HarmonyOS
2024-09-11 12:17:56
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

以desHar模块引用srcHar模块的C++ 接口为例子。

提供方srcHar模块配置:

1、将需要导出的C++头文件放至srcHar模块下的固定目录首先需要在srcHar/src/main/cpp目录下新建include目录:

// srcHar/src/main/cpp/include/test.h 
// 此处将头文件放置include目录下 
int add(int a,int b)

2、在srcHar模块的build-profile.json5中配置C++头文件的目录:

// srcHar/build-profile.json5 
{ 
  "apiType": "stageMode", 
"buildOption": { 
  "nativeLib": { 
    "headerPath": "src/main/cpp/include" 
  }, 
  "externalNativeOptions": {...}, 
}, 
  "buildOptionSet": [...], 
  "targets": [...] 
}

使用方desHar模块配置:

1、在desHar的oh-package.json5中声明依赖:

// desHar/oh-package.json5 
{ 
  "name": "deshar", 
"version": "1.0.0", 
"description": "Please describe the basic information.", 
"main": "Index.ets", 
"author": "", 
"license": "Apache-2.0", 
"dependencies": { 
  "libdesHar.so": "file:./src/main/cpp/types/libdesHar", 
  "srcHar": "file:../srcHar" 
} 
}

2、在desHar的CMakeLists.txt声明so库的依赖:

// desHar/src/main/cpp/CMakeLists.txt 
target_link_libraries(deshar PUBLIC libace_napi.z.so srchar::srcHar)

3、在desHar的cpp源码中使用 srcHar提供的C++方法:

// desHar/src/main/cpp/xxx.cpp 
# include 'test.h' 
// 此处是在Native模块的默认Add方法中验证 
static napi_value Add(){ 
  napi_create_double(env, add(value0,value1), &sum); 
}
分享
微博
QQ
微信
回复
2024-09-11 16:37:55
相关问题
基于HAR的跨模块C++头文件引用
733浏览 • 1回复 待解决
HarmonyOS代码封装解决方案
433浏览 • 1回复 待解决
HarmonyOS事件通信能力解决方案
706浏览 • 1回复 待解决
高级图表实现解决方案
592浏览 • 1回复 待解决
确认网络状况解决方案
392浏览 • 1回复 待解决
HarmonyOS有访问相册有解决方案
277浏览 • 1回复 待解决
抓包应用,求解决方案
1773浏览 • 1回复 待解决
HarmonyOS 音视频处理相关解决方案
341浏览 • 1回复 待解决
lazyforeach替换数据源解决方案
614浏览 • 1回复 待解决
应用包体积大小优化解决方案
418浏览 • 1回复 待解决
图片存储解决方案谁知道啊?
2503浏览 • 1回复 待解决
支持图文混排组件及解决方案
168浏览 • 1回复 待解决
开发疑难问题如下,求解决方案
129浏览 • 1回复 待解决
图像处理库是否有替代的解决方案
304浏览 • 0回复 待解决
webview中跨域问题解决方案
2368浏览 • 1回复 待解决
Harmony API9之后 GIS 解决方案有哪些?
2121浏览 • 1回复 待解决
List滚动条时长时短,求解决方案
892浏览 • 1回复 待解决
背景色透明度问题解决方案
431浏览 • 1回复 待解决