Tendo problemas com o make e o opencv

0

Eu estou tentando construir opencv para o meu sistema operacional x86_64 Centos 6.

Acho que o problema é tentar usar a versão de 32 bits da biblioteca bz2 em vez da versão de 64 bits.

Eu recebo esse erro do make:

[ 17%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_mjpeg_decoder.cpp.o
[ 17%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dc1394_v2.cpp.o
[ 17%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_gstreamer.cpp.o
[ 19%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_v4l.cpp.o
[ 19%] Building CXX object modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_ffmpeg.cpp.o
Linking CXX shared library ../../lib/libopencv_videoio.so
/lib/libbz2.so.1: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [lib/libopencv_videoio.so.3.1.0] Error 1
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
make: *** [all] Error 2

E eu corro cmake assim:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_LIBRARY_PATH=/usr/lib64 CMAKE_INSTALL_PREFIX=/usr/local ..

Eu tenho a biblioteca instalada:

[root@localhost build]# ldconfig -p | grep libbz2
    libbz2.so.1 (libc6,x86-64) => /lib64/libbz2.so.1
    libbz2.so.1 (libc6) => /lib/libbz2.so.1

O que posso fazer para corrigir este problema? Obrigado!

EDIT: Eu também tenho os diretórios / lib e / lib64 e em / lib64 eu tenho libbz2.so.1 e libbz2.so.1.0.4

EDIT: E eu estou seguindo estas instruções link

    
por Jason 25.12.2015 / 22:59

1 resposta

2

Depois de navegar em vários outros sites da Q & A, descobri que o problema é que o cmake está usando a biblioteca de 32 bits como se fosse a de 64 bits.

Eu resolvi isso no Fedora 22 fazendo isso:

  1. remova seu arquivo CMakeCache.txt

  2. execute cmake para gerar novamente

    cmake -D blah blah flags and values
    
  3. Edite seu arquivo CMakeCache.txt e altere esta linha

    //Path to a library.
    BZIP2_LIBRARIES:FILEPATH=/lib/libbz2.so.1
    

    para isso

    //Path to a library.
    BZIP2_LIBRARIES:FILEPATH=/lib64/libbz2.so.1
    
  4. Executar cmake novamente (não tenho certeza se necessário, mas apenas por precaução)

  5. make

Em seguida, terminou sem erros

    
por 24.03.2016 / 01:46