本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。
详细描述:
项目里有多个模块,在其中一个公共模块,创建了 cpp 目录,放入了 c++代码,并配置好了 index.d.ts、cmake、napi 等信息,在本模块界面中通过 import libxx from 'libxx.so'可以正常调用 C++函数。但是在其他模块中,用这样的导入方式 IDE 会报错,应该如何正确导入?
解决方案:
跨模块使用 so 库可以用以下方法:
1. 纯 CPP 部分单独用 ndk 编译成.so 或.a 并放在 HAR 或 HSP 中。
2. 依赖上述的 HAR 或 HSP 后,使用已链接+头文件的方式,在链接的时候,直接写库文件的名字即可,这样纯 cpp 的 so 实现了多模块共享。需要通过 napi 使用的也只需要单独写 napi 代码即可,此时 napi 封装后的能力也可以通过模块依赖的方式被其他模块使用。
操作步骤、参考代码和相关讨论,请点击原帖查看:





