Tenter de suivre certains didacticiels sur la création d'un package .deb pour une version plus récente d'OpenCV dans Ubuntu 18.04. Voici mes étapes:
wget https://github.com/opencv/opencv/archive/4.1.0.Zip
unzip 4.1.0.Zip
cd opencv-4.1.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
À ce stade, je modifie le fichier CMakeCache.txt et modifie cette ligne de OFF
à ON
:
CPACK_BINARY_DEB:BOOL=ON
Cette étape suivante compile tout avec succès, mais échoue ensuite lors de la création du package .deb:
make -j4 package
Il s'agit de l'extrémité arrière de la sortie qu'il produit avec les messages d'erreur:
Run CPack packaging tool...
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: OpenCV
CPack: - Install project: OpenCV
CPack: - Install component: dev
CPack: - Install component: Java
CPack: - Install component: libs
CPack: - Install component: licenses
CPack: - Install component: python
CPack: - Install component: scripts
CPack: Create package
CPackDeb: - Generating dependency list
CMake Error at /usr/share/cmake-3.10/Modules/CPackDeb.cmake:709 (message):
CPackDeb: dpkg-shlibdeps: '
dpkg-shlibdeps: error: cannot find library libopencv_calib3d.so.4.1 needed by ./usr/bin/opencv_interactive-calibration (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/usr/local/lib')
dpkg-shlibdeps: error: cannot find library libopencv_features2d.so.4.1 needed by ./usr/bin/opencv_interactive-calibration (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/usr/local/lib')
dpkg-shlibdeps: error: cannot find library libopencv_highgui.so.4.1 needed by ./usr/bin/opencv_interactive-calibration (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/usr/local/lib')
dpkg-shlibdeps: error: cannot find library libopencv_videoio.so.4.1 needed by ./usr/bin/opencv_interactive-calibration (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/usr/local/lib')
dpkg-shlibdeps: error: cannot find library libopencv_imgproc.so.4.1 needed by ./usr/bin/opencv_interactive-calibration (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/usr/local/lib')
dpkg-shlibdeps: error: cannot find library libopencv_core.so.4.1 needed by ./usr/bin/opencv_interactive-calibration (ELF format: 'elf64-x86-64' abi: '0201003e00000000'; RPATH: '/usr/local/lib')
...cut lots more...
dpkg-shlibdeps: error: cannot continue due to the errors listed above
Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.
To help dpkg-shlibdeps find private libraries, you might need to use -l.
';
executed command: '/usr/bin/dpkg-shlibdeps --ignore-missing-info -O ./usr/bin/opencv_annotation;./usr/bin/opencv_interactive-calibration;./usr/bin/opencv_version;./usr/bin/opencv_visualisation';
Quelqu'un peut-il faire la lumière sur ce que je dois faire pour créer le fichier OpenCV .deb?
Un peu tard pour répondre, mais j'ai atterri ici parce que je cherchais des réponses au même problème sur nVidia Jetson Nano. Finalement, j'ai creusé un peu pour le résoudre. Voici ce que j'ai fait pour réussir à créer un package .deb
.
Après avoir "cmake" et activé le drapeau CPACK_BINARY_DEB:BOOL
,
make
d'abord.
Modifiez le fichier CPackConfig.cmake
Dans votre répertoire de construction
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "TRUE")
- empruntée à ce service Mozilla lua_sandbox a résolu le problème.unknown
(version) par 4.1.0
.Modifiez le CPackSourceConfig.cmake
Pour remplacer toutes les occurrences de unknown
(version) par 4.1.0
.
make package
L'étape 1 permet à l'outil de package de trouver les dépendances de bibliothèque manquantes qui doivent être créées en premier. La première modification à l'étape 2 a permis de construire le paquet deb, et d'autres modifications ont permis de construire des paquets avec un numéro de version numérique (chose correcte à faire pour les futures mises à niveau), sans quoi dpkg
se plaint.