OpenCV компилируется правильно, но завершается ошибкой во время упаковки .deb

Попытка следовать некоторым учебникам по созданию пакета .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?

2
задан 14 May 2019 в 08:46

2 ответа

Необходимо звонить make install прежде, чем звонить make package.

-1
ответ дан 10 November 2019 в 17:54

Немного поздно в ответе, но я приземлился здесь, потому что я искал ответы на ту же проблему на Nvidia Нано Jetson. В конечном счете я вырыл немного для решения его. Вот то, что я сделал для успешного создания a .deb пакет.

После "cmake" луг и превращение флага CPACK_BINARY_DEB:BOOL на,

  1. make сначала.

  2. Отредактируйте CPackConfig.cmake файл в Вашем каталоге сборки

    1. прокомментировать строку set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS "TRUE") - заимствованный у этой Mozilla Services lua_sandbox решенный вопрос.
    2. заменять все случаи unknown (версия) к 4.1.0.
  3. Отредактируйте CPackSourceConfig.cmake заменять все случаи unknown (версия) к 4.1.0.

  4. make package

Шаг 1 позволяет инструменту пакета находить недостающие зависимости библиотеки, которые должны быть созданы сначала. Первое редактирование на шаге 2 позволило создавать deb пакет, и другие редактирования позволили создавать пакеты с числовым номером версии (корректная вещь сделать для будущих обновлений), без который dpkg жалуется.

0
ответ дан 3 December 2019 в 06:12

Другие вопросы по тегам:

Похожие вопросы: