Skompilowanie OpenCV 2.4.2 na Raspberry Pi zajęło mi 6 godzin i chciałbym spakować wszystko jako deb, ale nigdy wcześniej tego nie robiłem. Jak spakować skompilowane pliki, aby pobierały lub zawierały niezbędne inne biblioteki?
Skompilowanie OpenCV 2.4.2 na Raspberry Pi zajęło mi 6 godzin i chciałbym spakować wszystko jako deb, ale nigdy wcześniej tego nie robiłem. Jak spakować skompilowane pliki, aby pobierały lub zawierały niezbędne inne biblioteki?
Odpowiedzi:
Jeśli przez OpenCV masz na myśli biblioteki wizji komputerowej pod adresem http://opencv.willowgarage.com/, to są one już spakowane do debiana przez Zespół Naukowy Debiana.
Najlepszym rozwiązaniem jest pobranie pakietu źródłowego debianizowanego z najbliższego serwera lustrzanego Debiana, zmodyfikowanie debian / rules i / lub Makefile lub skonfigurowanie itp. W razie potrzeby, aby poprawnie skompilować na Raspberry pi i odbudować pakiety.
Prace nad pakowaniem są już zakończone, nie trzeba tego robić ponownie ... i za każdym razem, gdy chcesz je zaktualizować.
Istnieje cała masa pakietów binarnych, ale libopencv-dev jest prawdopodobnie tym, co chcesz zacząć od http://packages.debian.org/search?ke words=libopencv-dev
Pomyślałem, że dodam lepszą odpowiedź dla każdego, kto obserwuje ten wątek.
Jeśli więc masz już problem z budowaniem opencv na urządzeniu, prawdopodobnie postępowałeś zgodnie z instrukcjami tutaj:
http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html
W takim przypadku, jeśli nie dodasz -D args
do dynamicznego przesłonięcia parametrów CMake w kroku drugim, a zamiast tego po prostu uruchomisz cmake ..
wewnątrz katalogu kompilacji (utworzonego), wygeneruje CMakeCache.txt
plik.
Jeśli edytujesz CMakeCache.txt
plik, możesz zmienić:
CPACK_BINARY_DEB:BOOL=ON
... oprócz innych określonych zmiennych w powyższym linku opencv. Zamiast biegać make
lub make install
... po prostu biegać make package
i magia się dzieje.
Ostrzeżenie: jeśli masz, WITH_CUDA:BOOL=ON
możesz mieć problemy z zależnością od programu pakującego - i to jest zupełnie inne pytanie ...
Aby uzyskać więcej informacji, zobacz CPACK_*_*:BOOL
parametry w plikach cmake i zapoznaj się z dokumentacją CPack:
OpenCV-*-{libs,dev}.deb
Potrzebujesz obu. Myślę, że dev ma nagłówki, których używa ld do łączenia z .so w libs. Możesz to również rozwiązać, uruchamiając dpkg -c OpenCV-*.deb
pakiet, aby wyświetlić zawartość. Ponadto, jeśli utworzyłeś to z source.tar, możesz nie mieć numeru wersji i dpkg -i $pkg
nie spodoba ci się to. Możesz powiedzieć, czy to mówi OpenCV-unknown-*{dev,libs}.deb
W takim przypadku git clone github.com/Itseez/opencv
i git checkout $tag
na karcie wydań. Jeśli budujesz z góry drzewa, dostajesz także tag na deb.
Ta strona powinna zawierać wszystkie potrzebne informacje i samouczki: http://wiki.debian.org/Packaging