opencv java 'Nenhum arquivo ou diretório' após a atualização de 14.04 para 16.04

3

Atualizei recentemente de 14.04 para 16.04 LTS. Eu tenho trabalhado em um aplicativo java nesta máquina há meses, que faz o processamento de imagem usando opencv. Eu compilei opencv a partir da fonte. Eu faço o meu desenvolvimento no eclipse e link para a biblioteca opencv estática que eu compilei sob 14.04. Como eu disse, isso funcionou por meses. Agora, imediatamente após a atualização para 16.04, a primeira vez que tento executá-lo, com o mesmo código, recebo o erro:

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

aqui está o código:

public class NativeOpenCVLoader {

    static {

        System.load("/home/pwarner/Documents/OpenCV/opencv-3.0.0/build/lib/libopencv_java300.so");
    }
}

Claro, o caminho está correto e o arquivo está lá.

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

Existe uma biblioteca c ++ que foi alterada com a atualização para que não seja mais possível ler o arquivo? Preciso reconstruir o opencv?

localize libIlmImf.so.6 sem resultados.

pwarner@pwarner-Studio-XPS-7100:~$ locate libIlmImf.so.6
pwarner@pwarner-Studio-XPS-7100:~$ 

MAS, parece que eu tenho libIlmImf.so

pwarner@pwarner-Studio-XPS-7100:/usr/lib$ locate libIlmImf.so
/usr/lib/x86_64-linux-gnu/libIlmImf.so

que é um link para:

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

Eu fiz o softlink para libIlmImf.so.6, como sugerido abaixo por Zanna (e SahibPrime).

pwarner@pwarner-Studio-XPS-7100:~$ locate libIlmImf.so.6
/usr/lib/x86_64-linux-gnu/libIlmImf.so.6

Mas ainda sem sorte - ainda recebendo o mesmo erro UnsatisfiedLinkError.

    
por excyberlabber 05.08.2016 / 21:08

1 resposta

2

Acabei passando as 3 horas para reconstruir o opencv a partir da origem após a atualização para o 16.04. Agora posso executar o servidor tomcat para meu projeto novamente. Eu segui as excelentes instruções aqui:

link

e aqui:

link

Eu tive dois problemas durante o make e tive que adicionar / ajustar as direções de đàm văn tài no link do youtube acima. O processo make não conseguiu encontrar libvpx.so.1 e caiu. Eu encontrei o libvpx.so.3 no meu sistema, e arrisquei e criei um link para libvpx.so.1 dele. A instalação parece feliz.

O segundo problema apareceu em relação ao libtiff e em

link

Eu encontrei uma resposta:

add -D BUILD_TIFF=ON 

para a lista de cmake. Isso resolveu esse problema.

Tive o cuidado de desinstalar a minha instalação antiga do opencv 3.0.0 antes de instalar a nova versão 3.1.0. E posso salientar que, com base na minha experiência, é melhor excluir todo o conteúdo do diretório de compilação se você tiver um problema durante o make e, após corrigir o problema, executar o cmake novamente e, em seguida, fazer.

Aqui estão os passos claros e detalhados de đàm văn tài da sua página do youtube (se você usá-los, você pode ir até a página dele e clicar em 'like') - o link mais uma vez: link ).

*Update Repositories
sudo apt update -y && sudo apt upgrade

*Build tools
sudo apt install build-essential cmake 

*Multimedia"
 sudo apt install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libgdal-dev zlib1g-dev libwebp-dev  libv4l-dev libxine2-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 libx264-dev yasm libxvidcore-dev libvorbis-dev libtheora-dev libswscale-dev libavformat-dev libavcodec-dev libdc1394-22-dev libgstreamer-plugins-base0.10-dev libgstreamer0.10-dev libfaac-dev ffmpeg

*Parallel frameworks
sudo apt install libtbb2 libtbb2-dbg libtbb-dev libpomp2-dev

*Python Support
sudo apt install python-dev python-tk python-numpy python3-dev python3-tk python3-numpy

*Oracle JDK
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
sudo apt install ant  

*Extras
sudo apt install libeigen3-dev doxygen libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev qt5-default libatlas-base-dev gfortran

cd opencv-3.1.0
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-master/modules -D BUILD_EXAMPLES=ON -D WITH_OPENGL=ON ..
sudo apt-get install ant default-jdk
make -j2
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
cd ..
cd samples/
cmake .
sudo make -j4 
    
por excyberlabber 07.08.2016 / 15:19