我在 Java 中通过 JNI 使用一些 C++ 代码。C++ 代码使用了一些来自 libstdc++ 和 libz 的函数。C++ 部分被链接到一个共享库中,并且构建的库用于不同的环境(基于 Linux)。
我担心的是 libstdc++ 和 libz 版本的差异。如果我在环境 A 上构建了该 JNI 库,然后转到可能具有其他 libstdc++ 和 libz 版本的环境 B 和 C - 它会失败吗?这是否意味着我需要将这些库静态链接到我的 JNI 共享库中?
PS 2 个略有不同的环境的第一次测试成功,但我仍然觉得这里不安全。