Недавно я обновился с 14.04 до 16.04 LTS. Я работаю над java-приложением на этой машине в течение нескольких месяцев, что делает обработку изображений с помощью opencv. Я собрал opencv из источника. Я делаю свое развитие в eclipse и ссылаюсь на статическую библиотеку opencv, которую я скомпилировал под 14.04. Как я уже сказал, это работало месяцами. Теперь сразу после обновления до 16.04, когда я пытаюсь запустить его с тем же кодом, я получаю ошибку:
java.lang.UnsatisfiedLinkError /home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_java300.so: libIlmImf.so.6: cannot open shared object file: No such file or directory
вот код:
public class NativeOpenCVLoader {
static {
System.load("/home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_java300.so");
}
}
Конечно, путь правильный, и файл есть.
ls /home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_java300.so
/home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_java300.so
Есть ли библиотека c ++, которая была изменена при обновлении, чтобы она больше не читала файл? Мне нужно перестроить opencv?
locate libIlmImf.so.6 не дает результатов.
pwarner@pwarner-Studio-XPS-7100:~$ locate libIlmImf.so.6
pwarner@pwarner-Studio-XPS-7100:~$
НО, похоже, у меня есть libIlmImf.so
pwarner@pwarner-Studio-XPS-7100:/usr/lib$ locate libIlmImf.so
/usr/lib/x86_64-linux-gnu/libIlmImf.so
, который является программной ссылкой на:
pwarner@pwarner-Studio-XPS-7100:/usr/lib/x86_64-linux-gnu$ ll libIlmImf.so*
lrwxrwxrwx 1 root root 23 Apr 17 20:42 libIlmImf.so -> libIlmImf-2_2.so.22.0.0
Я сделал программную ссылку на libIlmImf.so.6, как предложено ниже Zanna (и SahibPrime).
pwarner@pwarner-Studio-XPS-7100:~$ locate libIlmImf.so.6
/usr/lib/x86_64-linux-gnu/libIlmImf.so.6
Но все равно не повезло - по-прежнему возникает ошибка UnsatisfiedLinkError.