Linux Java: 在没有 dlopen 的情况下动态加载 .so

Linux Java: load .so dynamically without dlopen

我有 2 个库(first.so 和 second.so),我需要在 'first.so' 中调用 'second.so' 的函数。 现在就我而言,我不想对 second.so 执行静态 link。 我需要动态调用它。 所以我需要的是使用

System.loadlibrary("first.so") System.loadlibrary("second.so")

现在在 "first.so" 的 c++ 代码中,我需要从 second.so 调用一个函数。 我可以不使用 dlopen 来执行此操作吗?

当您编译 C++ 代码并构建您的 first.so 时,您指示链接器使用第二个库中的外部符号。第二个库必须在 运行 时位于库搜索路径上,以便系统动态链接器可以找到它。