gpt4 book ai didi

java - 使用 undefined symbol 加载 JNI 时崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:51 24 4
gpt4 key购买 nike

我正在尝试将我的 native 库链接到 Java 应用程序,但是当我尝试运行它时,我得到一个 java.lang.UnsatisfiedLinkError 异常,提示缺少符号(_ZTVN10__cxxabiv117__class_type_infoE)

我像使用任何其他共享库一样使用 g++ 编译共享库。

这是我第一次尝试使用 JNI,我不知道如何正确链接所有内容。

最佳答案

您可以使用工具链附带的 c++filt 可执行文件来分解丢失的符号。然后就是弄清楚代码的哪一部分没有做它应该做的事情。

nm 可用于列出代码中定义的符号。如果您看到某个符号在同一行上有一个 U,则它是未定义的,可能会导致此错误。将 -E 传递给 gcc/g++ 会在预处理步骤后停止编译器,这可能也很有用。

我过去遇到这个错误的原因基本上是:

  • 没有构建我认为我正在构建的东西(它发生在我们中最好的人身上)
  • 调用约定以一种意想不到的方式破坏了符号

关于java - 使用 undefined symbol 加载 JNI 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5825771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com