4 Stimmen

Das Paket gtk-engines-2 wurde im pkg-config-Suchpfad nicht gefunden

Ich versuche, die C-Implementierung des SIFT-Algorithmus von Rob Hess zu kompilieren. Ich habe OpenCV 2.1 erfolgreich installiert und die Installation mit den mitgelieferten C-Beispielprogrammen getestet. Es trat kein Fehler auf.

Dieser Code, den ich zu kompilieren versuche, wurde mit OpenCV 2.0 geschrieben. Ich habe erfolgreich kompiliert und lief die genaue Code irgendwann zurück mit OCV2.0 . Aber jetzt schlägt die Kompilierung fehl und gibt dies aus. Ich verwende die mit dem Code gelieferte make-Datei.

make -C ./src siftfeat
make[1]: Entering directory `/home/niroshan/sift/src'
ar rc ../lib/libfeat.a imgfeatures.o utils.o sift.o kdtree.o minpq.o xform.o refine.o
ranlib  ../lib/libfeat.a
gcc  -I../include `pkg-config --cflags opencv gtk-engines-2` siftfeat.c -o ../bin/siftfeat -L../lib -lfeat `pkg-config --libs opencv gtk-engines-2`
Package gtk-engines-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk-engines-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk-engines-2' found
Package gtk-engines-2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk-engines-2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk-engines-2' found
In file included from siftfeat.c:18:
sift.h:23: fatal error: cxcore.h: No such file or directory
compilation terminated.
make[1]: *** [siftfeat] Error 1
make[1]: Leaving directory `/home/niroshan/sift/src'
make: *** [siftfeat] Error 2

Wahrscheinlich gibt es ein weiteres Problem mit der Einbindung von cxcore.h Kann mir jemand erklären, was hier falsch ist? Vielen Dank im Voraus

7voto

Nate Punkte 86

Ich hatte das gleiche Problem auf meinem Ubuntu 10.10 Rechner.

Ich fand heraus, welche Datei vom Build benötigt wurde ("gdk/gdk.h") und sah, dass das gtk+-2.0-Paket (/usr/lib/pkgconfig/gtk+-2.0.pc) den Include-Pfad zu /usr/include/gtk-2.0 enthielt, zu dem die benötigte Datei relativ existiert.

Ich editierte src/Makefile und änderte beide CFLAGS und LIBS pkg-config Zeilen von "pkg-config ... opencv gtk-engines-2" zu "pkg-config ... opencv gtk+-2.0" und es wurde für mich gebaut.

1voto

ltc Punkte 3193

Die cxcore.h scheint nicht aus der API entfernt zu werden. Also laufen

pkg-config --cflags-only-I opencv

und überprüfen Sie, ob das Verzeichnis, das cxcore.h enthält (höchstwahrscheinlich /usr/include/opencv oder /usr/local/include/opencv), zum Include-Pfad hinzugefügt wurde. Wenn dies nicht der Fall ist, können Sie es manuell mit dem makefile-Rezept hinzufügen oder die Datei opencv.pc so bearbeiten, dass sie etwa so aussieht

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/opencv

Name: OpenCV
Description: Intel(R) Open Source Computer Vision Library
Version: 2.1.0
Libs: -L${libdir} -lml -lcvaux -lhighgui -lcv  -lcxcore
Cflags: -I${includedir}

Möglicherweise müssen Sie das Präfix an das Präfix Ihrer Installation anpassen

0 Stimmen

Opencv.pc Datei sieht genau so aus, außer prefix=/usr/local CAn können Sie mir sagen, was das Paket 'gtk-engines-2' ist. Ich habe gtk+-2.18.4 installiert, aber das Problem ist immer noch nicht gelöst

0 Stimmen

Hmm, das wird plattformspezifisch sein. Ich müsste wissen, welches Betriebssystem Sie verwenden, um eine echte Chance zu haben, das herauszufinden. Um ehrlich zu sein, scheint es aber sehr unwahrscheinlich, dass dies das Problem ist. Haben Sie überprüft, ob es eine Datei namens cxcore.h in /usr/local/include/opencv gibt?

0 Stimmen

@ltc Tatsächlich hatte ich das gleiche Problem auf einem anderen Computer, auf dem Ubuntu 10.10 läuft. Aber Ubuntu 10.04 LTS zeigt den Fehler nicht an. Könnte dies ein Fehler in Ubuntu sein?

0voto

gordonbanderson Punkte 191

Ich habe dies in Ubuntu Precise funktioniert. Ich musste die folgenden Pakete installieren, sowie die Änderung zu gtk+-2.0 vorher erwähnt.

gtk+-2.0 libgtk2.0-dev libcv-dev libhighgui-dev doxygen

Einige Hintergrundinformationen zur Verwendung finden Sie hier - https://web.engr.oregonstate.edu/~hess/veroeffentlichungen/siftlib-acmmm10.pdf

Sowohl bin/match als auch bin/siftfeat funktionieren bei mir und erzeugen Bilder mit Pfeilen, die zeigen, wo die Merkmale extrahiert wurden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X