webentwicklung-frage-antwort-db.com.de

code mit opencv kompilieren -/usr/bin/ld: kann -lippicv nicht finden

Beim Kompilieren von Code mit opencv erhalte ich diesen Fehler

# 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

opencv installieren

# 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
9
clarkk

Rekompilieren Sie OpenCv mit folgender Option:

cmake -DWITH_IPP=ON . && make -j $(nproc) && make install
4
Dipak D Desai

In meinem Fall genügt es, libippicv.a aus dem OpenCV-SDK nach/usr/local/lib zu kopieren:

Sudo cp 3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/libippicv.a /usr/local/lib/
14
iowarod

Es ist nicht erforderlich, die gesamte Bibliothek neu zu kompilieren, insbesondere, wenn Sie diese Bibliothek nicht benötigen. Ich fand eine tolle und sofort funktionierende Lösung hier . Falls der Link abgelaufen oder defekt ist:

Die Lösung besteht einfach darin, -lippicv aus der Konfigurationsdatei von opencv pkg-config zu entfernen. Sie müssen also die opencv.pc-Datei finden, deren Standardeinstellung im /usr/local/lib/pkgconfig/-Verzeichnis liegt. Dann entfernen Sie aus dem Abschnitt Libs: die zuvor genannte Bibliothek. 

5
hurin

libippicv.a ist eine Bibliothek eines Drittanbieters. Sie müssen sie daher beim Kompilieren explizit angeben oder in Ihre Ausführungsumgebung aufnehmen.

Es befindet sich in ~/OpenCV/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64 /

Geben Sie zum Zeitpunkt der Makefile-Generierung auch cmake -DWITH_IPP = ON an.

0
H.B

Beim Versuch, das Repository opencv_contrib (opencv-3.1.0/Ubuntu 16.04) zu installieren, bin ich auf das gleiche Problem gestoßen, und keine der Lösungen funktionierte (ich habe versucht, OpenCV mit dem Flag WITH_IPP=ON zu erstellen, der Download von OpenCV 3.1.0 schlug jedoch fehl Die ippicv-Bibliothek (?) und es gab keine Fehlermeldung. Ich habe dies nur herausgefunden, als ich locate ippicv im Terminal versuchte.

Meine Lösung bestand darin, einen anderen OpenCV-Build herunterzuladen (3.0.0 funktionierte für mich), make + make mit Flag WITH_IPP=ON zu installieren und dann die heruntergeladene ippicv-Bibliothek (die sich jetzt in /usr/local/share/OpenCV/3rdparty/lib/libippicv.a befinden sollte) nach /usr/local/lib/ zu kopieren.

Ich weiß nicht, ob dies ein bekannter Fehler in OpenCV 3.1.0 ist, aber es lohnt sich definitiv, darauf zu achten.

0
zeklewa