Wie kann ich mit meinem kompilierten OpenCV-Build ein .deb-Paket erstellen?

9

OpenCV 2.4.2 brauchte 6 Stunden, um auf dem Raspberry Pi zu kompilieren, und ich würde gerne alles als Deb verpacken, aber das habe ich noch nie gemacht. Wie kann ich die kompilierten Dateien so verpacken, dass sie die erforderlichen anderen Bibliotheken herunterladen oder enthalten?

timelf123
quelle
Ist dies eher eine Linux-spezifische Frage als eine Pi-bezogene? Vielleicht besser nach Debain fragen?
Hallo. Da es sich um generisches Debian handelt, würde es Ihnen etwas ausmachen, wenn ich dies auf Ask Ubuntu oder Unix & Linux verschieben würde ?
Jivings
@Jivings Ich denke, es hängt mit PI zusammen, da ich nichts über Hard Float gegen Soft Float weiß und ich weiß, dass Pi diesbezüglich Vorbehalte hat. Wenn es ein allgemeiner Konsens darüber , dass da jemand helfen könnte diese Frage beantworten ich kein Problem mit ihm habe bewegt wird

Antworten:

4

Wenn Sie mit OpenCV die Computer Vision-Bibliotheken unter http://opencv.willowgarage.com/ meinen, dann sind sie bereits vom Debian Science Team für Debian verpackt.

Am besten laden Sie das debianisierte Quellpaket von Ihrem nächsten Debian-Spiegel herunter, ändern das Debian / die Regeln und / oder das Makefile oder konfigurieren usw. nach Bedarf, um es auf dem Himbeer-Pi korrekt zu kompilieren und die Pakete neu zu erstellen.

Die Verpackungsarbeiten sind bereits erledigt, Sie müssen sie nicht erneut ausführen ... und jedes Mal, wenn Sie sie aktualisieren möchten.

Es gibt eine ganze Reihe von Binärpaketen, aber libopencv-dev ist wahrscheinlich das, was Sie mit http://packages.debian.org/search?keywords=libopencv-dev beginnen möchten

cas
quelle
Funktionieren die veröffentlichten Pakete auf einer ARM-Architektur wie dem Raspberry Pi? Ich wünschte, ich hätte Pakete und Abhängigkeiten besser verstanden, aber es scheint mir, dass ihre Pakete nicht funktionieren, wenn Willowgarage kein Paket speziell für den Prozessor im Raspberry Pi veröffentlicht.
Dan B
Sie müssen falsch verstanden haben, was ich geschrieben habe. Ich sagte, ich soll die debian SOURCE- Pakete herunterladen und für Raspberry Pi neu kompilieren. 'onlinemarketresults' hat bereits eine RPi-Kompilierungsumgebung (oder Cross-Compilation-Umgebung) eingerichtet und weiß, wie man für RPi kompiliert. Er wollte nur wissen, wie man ein Paket erstellt.
Cas
11

Ich dachte, ich würde eine bessere Antwort für alle anderen hinzufügen, die diesen Thread beobachten.

Wenn Sie sich bereits die Mühe gemacht haben, opencv auf dem Gerät zu erstellen, haben Sie wahrscheinlich die folgenden Anweisungen befolgt:

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html

In diesem Fall wird eine Datei generiert , wenn Sie -D argsin Schritt 2 die CMake-Parameter nicht hinzufügen, um sie dynamisch zu überschreiben, und stattdessen nur cmake ..im (von Ihnen erstellten) Build-Verzeichnis ausgeführt CMakeCache.txtwerden.

Wenn Sie die CMakeCache.txtDatei bearbeiten , können Sie Folgendes ändern:

CPACK_BINARY_DEB:BOOL=ON

... zusätzlich zu den anderen angegebenen Variablen im obigen opencv-Link. Anstatt zu rennen makeoder make install... einfach zu rennen make packageund die Magie passiert.

Warnung: Wenn ja, haben WITH_CUDA:BOOL=ONSie möglicherweise Abhängigkeitsprobleme mit dem Packager - und das ist eine ganz andere Frage ...

Weitere Informationen finden Sie in den CPACK_*_*:BOOLParametern in den cmake-Dateien und in der CPack-Dokumentation:

http://www.cmake.org/Wiki/CMake:CPackPackageGenerators

hhony
quelle
Dadurch werden einige .deb-Dateien, einige tar-Dateien und ein Skript erstellt. Welche davon müssen auf ein Zielsystem verteilt und auf diesem ausgeführt werden? Alle? Benötigen sie unterstützende Dateien?
Alex
@ Alex, habe diesen Beitrag letztes Jahr vergessen. Sie sollten also OpenCV-*-{libs,dev}.deb beides brauchen. Ich denke, dev hat die Header, die ld verwendet, um gegen die .so in libs zu verlinken. Sie können dies auch herausfinden, indem Sie dpkg -c OpenCV-*.debdas Paket ausführen , um den Inhalt aufzulisten. Wenn Sie dies aus source.tar erstellt haben, haben Sie möglicherweise keine Versionsnummer und dies dpkg -i $pkgwird Ihnen nicht gefallen. Sie können feststellen, ob OpenCV-unknown-*{dev,libs}.debin welchem ​​Fall git clone github.com/Itseez/opencvund git checkout $tagauf der Registerkarte "Releases" steht. Wenn Sie von oben auf dem Baum bauen, erhalten Sie auch ein Tag auf deb.
Hhony