RPATH не используется для библиотеки JNI Java - PullRequest
1 голос
/ 25 июня 2019

Это коробка CentOS 7.5 aarch64. Я установил gcc 6.1 в свой каталог / opt / build и использовал новую версию для сборки библиотеки jni с -Wl, -rpath = / opt / build / lib.
Таким образом, библиотека jni была связана с /opt/build/lib/libstdc++.so.6. Я дважды проверил это с помощью ldd и chrpath.
Затем я использовал java -jar app.jar, чтобы попробовать это.

Исключение в потоке "main" java.lang.UnsatisfiedLinkError: /opt/app/lib/libmylib.so.3.14.0: /lib64/libstdc++.so.6: версия `GLIBCXX_3.4.20 'не найдена (требуется для /opt/app/lib/libmylib.so.3.14.0)

Понятно, что /opt/app/lib/libmylib.so.3.14.0 будет пытаться соединиться с /lib64/libstdc++.so.6, даже если RPATH установлен в /opt/build/lib.

Не знаю, почему ...

...