Derlenmiş OpenCV derlememle nasıl .deb paketi oluşturabilirim?


9

OpenCV 2.4.2, Raspberry Pi'de derlenmek için 6 saat sürdü ve her şeyi bir deb olarak paketlemeyi çok isterdim ama daha önce hiç yapmadım. Derlenmiş dosyaları gerekli diğer kitaplıkları indirmeleri veya eklemeleri için nasıl paketleyebilirim?


Bu, Pi ile ilgili bir sorudan ziyade Linux'a özgü bir soru mu? Belki Debain'e bunu sorsan iyi olur.

Merhaba. Bu genel Debian olduğu için bunu Ask Ubuntu veya Unix & Linux'a taşımamın bir sakıncası var mı?
Jivings

@Jivings Ben sert float vs yumuşak float hakkında hiçbir şey bilmiyorum çünkü PI ile ilgili olduğunu düşünüyorum ve bu konuda Pi ile uyarılar olduğunu biliyorum. Orada birisinin bu soruyu cevaplamaya yardımcı olabileceğine dair genel bir fikir birliği varsa, taşınmasıyla ilgili hiçbir sorunum yok

Yanıtlar:


4

OpenCV ile http://opencv.willowgarage.com/ adresindeki bilgisayar görme kütüphanelerini kastediyorsanız , Debian Bilim Ekibi tarafından debian için zaten paketlenmiştir.

En iyi seçim, ahududu pi üzerinde doğru derlemek ve paketleri yeniden oluşturmak için gerekli olan debianised kaynak paketini en yakın debian aynasından indirmek, debian / kuralları değiştirmek ve / veya Makefile veya yapılandırmak vb.

Paketleme işi zaten yapılıyor, tekrar tekrar yapmaya gerek yok .... ve her güncellemek istediğinizde tekrar tekrar.

Bir sürü ikili paket var, ancak libopencv-dev muhtemelen http://packages.debian.org/search?keywords=libopencv-dev ile başlamak istediğiniz şeydir.


Yayınlanan paketler Raspberry Pi gibi bir ARM mimarisinde çalışacak mı? Keşke paketleri ve bağımlılıkları daha iyi anlamış olsam da, willowgarage, Raspberry Pi'deki işlemci için özel bir paket yayınlamadığı sürece paketlerinin çalışmayacağı gibi görünüyor.
Dan B

Yazdıklarımı yanlış okumalısın. Debian SOURCE paketlerini indirmeyi ve Raspberry Pi için yeniden derlemeyi söyledim . 'onlinemarketresults' zaten bir RPi derleme (veya çapraz derleme) ortamına sahiptir ve RPi için nasıl derleneceğini bilir, sadece bir paketin nasıl yapılacağını bilmek istedi.
cas

11

Ben bu konu gözlemleyerek başkası için daha iyi bir cevap eklemek düşündüm.

Dolayısıyla, cihazda opencv oluşturma zahmetinden zaten geçtiyseniz, muhtemelen buradaki talimatları izlemişsinizdir:

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

Bu durumda, ikinci -D argsadımda dinamik olarak geçersiz kılmak için CMake parametrelerini eklemezseniz ve bunun yerine yalnızca cmake ..oluşturduğunuz dizinde (oluşturduğunuz) çalışırsanız, bir CMakeCache.txtdosya oluşturulur .

CMakeCache.txtDosyayı düzenlerseniz , şunları değiştirebilirsiniz:

CPACK_BINARY_DEB:BOOL=ON

... yukarıdaki opencv bağlantısındaki diğer belirtilen değişkenlere ek olarak. Bunun yerine çalışan makeveya make install... sadece koşmak make packageve sihir.

Uyarı: Varsa WITH_CUDA:BOOL=ON, paketleyiciyle bağımlılık sorunlarınız olabilir - ve bu tamamen farklı bir soru ...

Daha fazla bilgi CPACK_*_*:BOOLiçin cmake dosyalarındaki parametrelere bakın ve CPack belgelerine bakın:

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


Bu, birkaç .deb dosyası, birkaç tar dosyası ve bir komut dosyası üretir. Bunlardan hangilerinin bir hedef sisteme dağıtılması ve bu sistemde çalıştırılması gerekir? Herşey? Destekleyici dosyalara ihtiyaçları var mı?
Alex

@Alex, geçen yıl bu yazıyı unuttum. Yani, OpenCV-*-{libs,dev}.deb her ikisine de ihtiyacınız var . Ben dev bs libs .so karşı bağlantı için kullanır ld başlıklarını düşünüyorum. dpkg -c OpenCV-*.debİçeriği listelemek için paket üzerinde çalışarak da bunu anlayabilirsiniz . Ayrıca, bunu source.tar'dan oluşturduysanız, sürüm numaranız olmayabilir ve dpkg -i $pkgbundan hoşlanmayabilirsiniz. OpenCV-unknown-*{dev,libs}.debHangi durumda git clone github.com/Itseez/opencvve git checkout $tagbültenler sekmesinde olup olmadığını söyleyebilirsiniz . Eğer ağacın tepesinden inşa ederseniz, deb üzerinde de etiket alırsınız.
hhony

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.