写点什么

包含 C++ 代码的静态库引入失败,请问是什么原因?

  • 2026-02-26
    北京
  • 本文字数:291 字

    阅读完需:约 1 分钟

本问答帖原创发布在华为开发者联盟社区 ,欢迎开发者前往论坛提问交流。

问题描述:

项目中有一个包含 C++代码的静态库,使用 import testNapi from 'liblibrary.so'引入报错了,是什么原因,怎么解决呢?

解决方案:

崩溃的原因在于 demo 中使用时用 import testNapi from 'liblibrary.so';引入,是动态库的引入方式,但在 CMakeLists 里面把 napi 层编译成了静态库,导致找不到 liblibrary.so,调用函数的时候找不到符号表,最终导致崩溃。

编译时编译为动态库即可解决。

参考代码和相关讨论,请点击原帖查看:

https://developer.huawei.com/consumer/cn/forum/topic/0201164545590558381?fid=0109140870620153026&pid=0302164925387181568