JNI загрузить .so файл, скомпилированный с c ++ 11, возникает ошибка «/usr/lib64/libstdc++.so.6: версия` GLIBCXX_3.4.18 'не найдена » - PullRequest
0 голосов
/ 06 марта 2019

Я скомпилировал код C ++ с помощью gcc 4.8.2 (это версия c ++ 11 и необходима для моего кода C ++) и сгенерировал файл libmy.so.Я хочу вызвать метод в libmy.so из кода Java с JNI, и я установил LD_LIBRARY_PATH в качестве пути libmy.so.При запуске кода Java информация об ошибках выглядит следующим образом:

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

Поскольку эта машина Linux используется часто, я не хочу изменять файлы в / usr / lib64 (например, изменитьссылка libstdc++.so.6).

Кстати, у меня версия JDK 1.8, я пробовал JDK 1.11, и он тоже не удался.

Кажется, что Java не может загрузить нужную версию libstdc++.so.6 (также для libc.so), но я не уверен.

Как решить эту проблему?Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...