O OpenCV 2.4.2 levou 6 horas para compilar no Raspberry Pi e eu adoraria empacotar tudo como um deb, mas nunca fiz isso antes. Como posso empacotar os arquivos compilados para que eles baixem ou incluam as outras bibliotecas necessárias?
O OpenCV 2.4.2 levou 6 horas para compilar no Raspberry Pi e eu adoraria empacotar tudo como um deb, mas nunca fiz isso antes. Como posso empacotar os arquivos compilados para que eles baixem ou incluam as outras bibliotecas necessárias?
Respostas:
Se por OpenCV você se refere às bibliotecas de visão computacional em http://opencv.willowgarage.com/ , elas já estão empacotadas para debian pela Equipe de Ciências da Debian.
Sua melhor aposta é baixar o pacote fonte debianizado do seu espelho debian mais próximo, modificar o debian / rules e / ou Makefile ou configurar etc, conforme necessário para compilar corretamente no raspberry pi e reconstruir os pacotes.
O trabalho de empacotamento já está pronto, não há necessidade de fazê-lo novamente .... e de novo e de novo sempre que você desejar atualizá-los.
Há um monte de pacotes binários, mas libopencv-dev é provavelmente o que você deseja começar com http://packages.debian.org/search?keywords=libopencv-dev
Eu pensei em adicionar uma resposta melhor para qualquer outra pessoa observando esse tópico.
Portanto, se você já passou pelo problema de criar opencv no dispositivo, provavelmente já seguiu as instruções aqui:
http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html
Nesse caso, se você não adicionar os -D args
parâmetros CMake para substituir dinamicamente na etapa dois e executar cmake ..
dentro do diretório de criação (criado), ele gerará um CMakeCache.txt
arquivo.
Se você editar o CMakeCache.txt
arquivo, poderá alterar:
CPACK_BINARY_DEB:BOOL=ON
... além das outras variáveis especificadas no link opencv acima. Em vez de correr make
ou make install
... apenas corra make package
e a mágica acontece.
Aviso: Se você tiver, WITH_CUDA:BOOL=ON
pode ter problemas de dependência com o empacotador - e essa é uma pergunta totalmente diferente ...
Para mais informações, consulte os CPACK_*_*:BOOL
parâmetros nos arquivos cmake e consulte a documentação do CPack:
OpenCV-*-{libs,dev}.deb
Você precisa de ambos. Eu acho que o dev tem os cabeçalhos que o ld usa para vincular o .so nas bibliotecas. Você também pode descobrir isso executando dpkg -c OpenCV-*.deb
o pacote para listar o conteúdo. Além disso, se você criou isso a partir do source.tar, talvez não tenha um número de versão e dpkg -i $pkg
não irá gostar disso. Você pode saber se está escrito OpenCV-unknown-*{dev,libs}.deb
Em que caso git clone github.com/Itseez/opencv
e git checkout $tag
na guia releases. Se você construir a partir do topo da árvore, também receberá a tag deb.
Esta página deve conter todas as informações e tutoriais necessários: http://wiki.debian.org/Packaging