En compilant du code avec opencv
j'obtiens cette erreur
# g++ txtbin-03.1.cpp -o txtbin `pkg-config opencv --cflags --libs`
/usr/bin/ld: cannot find -lippicv
collect2: error: ld returned 1 exit status
# apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
# cd /var/bin && git clone https://github.com/Itseez/opencv.git && cd opencv
# cmake . && make -j2 && make install
Recompiler OpenCv en utilisant l’option suivante:
cmake -DWITH_IPP=ON . && make -j $(nproc) && make install
Dans mon cas, il suffisait de copier libippicv.a du SDK OpenCV vers/usr/local/lib:
Sudo cp 3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/libippicv.a /usr/local/lib/
Recompiler toute la bibliothèque n’est pas nécessaire, surtout si vous n’avez pas besoin de cette bibliothèque. J'ai trouvé la solution idéale et qui fonctionne instantanément ici . Si le lien a expiré ou s'est rompu:
La solution consiste simplement à supprimer -lippicv
du fichier de configuration opencv pkg-config. Vous devez donc localiser le fichier opencv.pc
, qui est par défaut dans le répertoire /usr/local/lib/pkgconfig/
. Ensuite, dans la section Libs:
, supprimez simplement la bibliothèque susmentionnée.
libippicv.a est une bibliothèque tierce. Vous devez donc la fournir explicitement lors de la compilation ou l'intégrer à votre environnement d'exécution.
Il se trouve dans ~/OpenCV/opencv-3.1.0/3ème partie/ippicv/unpack/ippicv_lnx/lib/intel64 /
Aussi, fournissez cmake -DWITH_IPP = ON au moment de la génération du Makefile.
J'avais le même problème en essayant d'installer le référentiel opencv_contrib (opencv-3.1.0/Ubuntu 16.04), et aucune des solutions ne fonctionnait (j'ai essayé de créer OpenCV avec l'indicateur WITH_IPP=ON
, mais OpenCV 3.1.0 n'a pas pu être téléchargé. la bibliothèque ippicv
(?) et il n'y avait pas d'erreur d'erreur, donc je ne l'ai compris que lorsque j'ai essayé de locate ippicv
dans le terminal).
Ma solution consistait à télécharger une autre version d'OpenCV (la version 3.0.0 fonctionnait pour moi), à make + make install avec l'indicateur WITH_IPP=ON
, puis à copier la bibliothèque ippicv téléchargée (qui devrait maintenant se trouver dans /usr/local/share/OpenCV/3rdparty/lib/libippicv.a
) à /usr/local/lib/
.
Je ne sais pas s'il s'agit d'un bogue connu d'OpenCV 3.1.0, mais celui-ci mérite certainement d'être surveillé.