JNI,C++;及其标准库 我在java中通过JNI使用了一些C++代码。 C++代码使用LIPSTDC + +和LIbz的一些函数。 C++部分链接到共享库,而在不同的环境(基于Linux)上使用的是构建的库。
我关心的是libstdc++和libz版本的差异。如果我在环境A上构建了那个JNI库,然后它转到了环境B和C,而环境B和C可能有其他的libstdc++和libz版本,它会失败吗?这是否意味着我需要静态地将这些库链接到我的JNI共享库中JNI,C++;及其标准库 我在java中通过JNI使用了一些C++代码。 C++代码使用LIPSTDC + +和LIbz的一些函数。 C++部分链接到共享库,而在不同的环境(基于Linux)上使用的是构建的库。,java,c++,java-native-interface,Java,C++,Java Native Interface,我关心的是libstdc++和libz版本的差异。如果我在环境A上构建了那个JNI库,然后它转到了环境B和C,而环境B和C可能有其他的libstdc++和libz版本,它会失败吗?这是否意味着我需要静态地将这些库链接到我的JNI共享库中 第一次测试了2个稍微不同的环境,但我仍然觉得不安全。 < P>这与C++的非JNI用法没有什么不同。一般来说,库提供者努力确保向后兼容性——所以在大多数情况下,您所关心的不是偶然发现一个太旧的版本 有几种常见的选择: 依靠打包来确保您的依赖关系的正确版本(例如,
第一次测试了2个稍微不同的环境,但我仍然觉得不安全。 < P>这与C++的非JNI用法没有什么不同。一般来说,库提供者努力确保向后兼容性——所以在大多数情况下,您所关心的不是偶然发现一个太旧的版本 有几种常见的选择: