¿Cómo puedo crear un paquete .deb con mi compilación compilada de OpenCV?


9

OpenCV 2.4.2 tardó 6 horas en compilarse en la Raspberry Pi y me encantaría empaquetar todo como deb, pero nunca lo había hecho antes. ¿Cómo puedo empaquetar los archivos compilados para que descarguen o incluyan las otras bibliotecas necesarias?


¿Es más una pregunta específica de Linux en lugar de una pregunta relacionada con Pi? ¿Quizás sea mejor preguntarle a Debain al respecto?

Hola. Como se trata de Debian genérico, ¿le importaría si lo moviera a Ask Ubuntu o Unix & Linux ?
Jivings

@Jivings Creo que está relacionado con PI ya que no sé nada sobre flotación dura versus flotación suave y sé que hay advertencias con Pi al respecto. Si hay un consenso general de que alguien allí podría ayudar a responder a esta pregunta no tengo ningún problema con él siendo movido

Respuestas:


4

Si por OpenCV te refieres a las bibliotecas de visión por computadora en http://opencv.willowgarage.com/ , ya están empaquetadas para Debian por el Equipo de Ciencias de Debian.

Su mejor opción es descargar el paquete fuente debianised de su espejo Debian más cercano, modificar el debian / rules y / o Makefile o configurar, etc., según sea necesario para compilar correctamente en la frambuesa pi y reconstruir los paquetes.

El trabajo de empaque ya está hecho, no hay necesidad de hacerlo nuevamente ... y una y otra vez cada vez que desee actualizarlos.

Hay un montón de paquetes binarios, pero libopencv-dev es probablemente lo que desea comenzar con http://packages.debian.org/search?keywords=libopencv-dev


¿Los paquetes publicados funcionarán en una arquitectura ARM como la Raspberry Pi? Ojalá entendiera mejor los paquetes y las dependencias, pero me parece que a menos que willowgarage haya lanzado un paquete específicamente para el procesador en la Raspberry Pi, sus paquetes no funcionarán.
Dan B

Debes haber leído mal lo que escribí. Le dije que descargue los paquetes de fuentes de Debian y recompile para Raspberry Pi. 'onlinemarketresults' ya tiene un entorno de compilación RPi (o compilación cruzada) configurado y sabe cómo compilar para RPi, solo quería saber cómo hacer un paquete.
cas

11

Pensé que agregaría una mejor respuesta para cualquier otra persona que observe este hilo.

Entonces, si ya ha tenido problemas para construir opencv en el dispositivo, probablemente haya seguido las instrucciones aquí:

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

En ese caso, si no agrega el -D argspara anular dinámicamente los parámetros de CMake en el paso dos y simplemente ejecuta cmake ..dentro del directorio de compilación (que creó), generará un CMakeCache.txtarchivo.

Si edita el CMakeCache.txtarchivo, puede cambiar:

CPACK_BINARY_DEB:BOOL=ON

... además de las otras variables especificadas en el enlace opencv anterior. En lugar de correr makeo make install... simplemente correr make packagey la magia sucede.

Advertencia: si lo tiene WITH_CUDA:BOOL=ON, puede tener problemas de dependencia con el empaquetador, y esa es una pregunta totalmente diferente ...

Para obtener más información, consulte los CPACK_*_*:BOOLparámetros en los archivos cmake y consulte la documentación de CPack:

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


Esto produce un par de archivos .deb, un par de archivos tar y un script. ¿Cuál de estos debe distribuirse y ejecutarse en un sistema de destino? ¿Todas? ¿Necesitan algún archivo de soporte?
Alex

@Alex, olvidé esta publicación el año pasado. Entonces, deberías tener OpenCV-*-{libs,dev}.deb Necesitas ambos. Creo que dev tiene los encabezados que ld usa para enlazar contra .so en libs. También puede resolver esto ejecutando dpkg -c OpenCV-*.deben el paquete, para enumerar los contenidos. Además, si creó esto desde source.tar, es posible que no tenga un número de versión y dpkg -i $pkgno le guste. Puedes saber si dice OpenCV-unknown-*{dev,libs}.debEn qué caso git clone github.com/Itseez/opencvy git checkout $tagen la pestaña de lanzamientos. Si construyes desde la parte superior del árbol, también obtienes una etiqueta en deb.
hhony

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.