Попытка следовать некоторым учебникам по созданию пакета .deb для более новой версии OpenCV в Ubuntu 18.04. Вот мои шаги:
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 ..
На этом этапе я редактирую файл CMakeCache.txt и изменяю эту строку с OFF
на ON
:
CPACK_BINARY_DEB:BOOL=ON
Этот следующий шаг компилирует все успешно, но затем завершается с ошибкой при создании пакета .deb:
make -j4 package
Это конечный конец вывода, который он выдает с сообщениями об ошибках:
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';
Может Кто-нибудь пролил свет на то, что я должен сделать, чтобы создать файл OpenCV .deb?
Необходимо звонить make install
прежде, чем звонить make package
.
Немного поздно в ответе, но я приземлился здесь, потому что я искал ответы на ту же проблему на Nvidia Нано Jetson. В конечном счете я вырыл немного для решения его. Вот то, что я сделал для успешного создания a .deb
пакет.
После "cmake" луг и превращение флага CPACK_BINARY_DEB:BOOL
на,
make
сначала.
Отредактируйте CPackConfig.cmake
файл в Вашем каталоге сборки
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "TRUE")
- заимствованный у этой Mozilla Services lua_sandbox решенный вопрос. unknown
(версия) к 4.1.0
.Отредактируйте CPackSourceConfig.cmake
заменять все случаи unknown
(версия) к 4.1.0
.
make package
Шаг 1 позволяет инструменту пакета находить недостающие зависимости библиотеки, которые должны быть созданы сначала. Первое редактирование на шаге 2 позволило создавать deb пакет, и другие редактирования позволили создавать пакеты с числовым номером версии (корректная вещь сделать для будущих обновлений), без который dpkg
жалуется.