【问题标题】:Clone compiled cmake build to identical hardware将已编译的 cmake 构建克隆到相同的硬件
【发布时间】:2017-04-12 07:31:07
【问题描述】:

我已经在树莓派上成功编译了 opencv 3.1。使用库进行开发工作得非常好。现在我想用 opencv 设置另一个相同的树莓派并节省编译时间,我的想法是将二进制文件复制到第二个树莓派。

所以我复制了包括 build 文件夹在内的 opencv 目录并尝试运行sudo make install。不再使用已经编译的文件,而是使用 cmake 重新开始编译。

如何让第二个 raspberry 的构建环境相信不需要重新编译所有内容?在我原来的树莓派上,我可以在完全相同的文件上运行sudo make install 而无需重新编译。安装的开发库在两个系统上是相同的。这是 cmake、make 还是 opencv 特有的问题?

我也尝试从/usr/... 目录复制所有 .so 和 .h 文件,但是当其他 cmake 项目尝试定位 opencv 包时,我遇到了更多问题。

【问题讨论】:

    标签: linux opencv cmake raspberry-pi


    【解决方案1】:

    Build 目录不打算复制到其他地方或另一台机器上。

    要将程序传送到其他机器,您应该使用已安装文件,或者更一般地说,

    CMake 附带CPack,它可以从源代码构建程序并创建包含其所有可交付成果的

    您可以在第一台 Raspberry PI 机器上创建 .deb 包:

    cpack -G DEB <source-dir>
    

    并使用dpkg将其安装在第二台机器上。

    还有像.tgz.zip 这样的“归档”包。 CPack 生成器的完整列表在wiki 中进行了描述。

    【讨论】:

    • 谢谢,这正是我所需要的!使用 DEB 选项运行 cpack 失败并显示奇怪的错误消息,因此我使用了-G TGZ 并在第二台机器上解压缩了存档。 cpack 的错误信息是(为了完整起见):CMake Error at /usr/share/cmake-3.0/Modules/CPackDeb.cmake:294 (string): string sub-command REGEX, mode REPLACE needs at least 6 arguments total to command.
    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多