如何使用编译后的OpenCV版本创建.deb包?


9

OpenCV 2.4.2花了6个小时在Raspberry Pi上进行编译,我很乐意将所有内容打包为deb,但我从未做过。如何打包已编译的文件,以便它们下载或包含必要的其他库?


这更多是Linux特定的问题,而不是Pi相关的问题?也许最好向Debain询问一下?

嗨,您好。由于这是通用的Debian,您介意我将其移至Ask UbuntuUnix&Linux吗?
吉文斯

@Jivings我认为这与PI有关,因为我对硬浮点与软浮点一无所知,而且我知道与Pi有关的注意事项。如果大家普遍认为某人可以帮助回答这个问题,那么我对它的搬迁没有任何问题

Answers:


4

如果使用OpenCV来表示计算机视觉库,请访问http://opencv.willowgarage.com/,则Debian科学团队已经将它们打包为debian。

最好的选择是从最近的debian镜像下载debianized源程序包,根据需要修改debian / rules和/或Makefile或进行配置等,以在raspberry pi上正确编译并重建程序包。

包装工作已经完成,无需每次重复更新。

有很多二进制软件包,但是libopencv-dev可能是您想从http://packages.debian.org/search?keywords=libopencv-dev开始的内容


发布的软件包是否可以在像Raspberry Pi这样的ARM体系结构上工作?我希望我能更好地了解软件包和依赖关系,但在我看来,除非Willowgarage为Raspberry Pi中的处理器专门发布了一个软件包,否则它们的软件包将无法工作。
Dan B

你一定误读了我写的东西。我说过要下载debian SOURCE软件包并为Raspberry Pi重新编译。“ onlinemarketresults”已经设置了RPi编译(或交叉编译)环境,并且知道如何为RPi进行编译,他只是想知道如何制作软件包。
cas

11

我以为会为其他观察此线程的人添加一个更好的答案。

因此,如果您已经遇到了在设备上构建opencv的麻烦,则可能已经遵循了以下说明:

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

在这种情况下,如果您没有-D args在第二步中添加来动态覆盖CMake参数,而是cmake ..在构建目录(您创建的)中运行,它将生成一个CMakeCache.txt文件。

如果您编辑CMakeCache.txt文件,则可以更改:

CPACK_BINARY_DEB:BOOL=ON

...以及上述opencv链接中的其他指定变量。而不是跑步makemake install...只是跑步make package,魔术就发生了。

警告:如果有的WITH_CUDA:BOOL=ON话,打包程序可能存在依赖性问题-这是一个完全不同的问题...

有关更多信息,请参见CPACK_*_*:BOOLcmake文件中的参数,并查阅CPack文档:

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


这将产生几个.deb文件,几个tar文件和一个脚本。其中哪些需要分发到目标系统并在目标系统上运行?所有?他们需要任何支持文件吗?
亚历克斯

@Alex,去年忘记了这个帖子。因此,您应该同时拥有OpenCV-*-{libs,dev}.deb 两者。我认为开发人员有头文件ld用于链接libs中的.so。您也可以通过dpkg -c OpenCV-*.deb在程序包上运行以找出其中的内容来解决这一问题。另外,如果您是从source.tar创建的,则可能没有版本号,dpkg -i $pkg也不会这样。您可以在“发行版”标签和“发行版”标签中判断是否显示“ OpenCV-unknown-*{dev,libs}.deb在这种情况下” 。如果从树的顶部进行构建,则还会在deb上获得标签。git clone github.com/Itseez/opencvgit checkout $tag
hhony

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.