Я скомпилировал код 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
), но я не уверен.
Как решить эту проблему?Большое спасибо!