【问题标题】:Cross Compile OpenCV Cannot Find libv4l1交叉编译 OpenCV 找不到 libv4l1
【发布时间】:2013-05-15 04:26:35
【问题描述】:

我正在关注来自this 博客的关于为 ARM 交叉编译 opencv 的教程。 我的主机系统是 Ubuntu 12.04 64 位,编译器是 gcc-arm-linux-gnueabi 4.5.1。

运行make时出现如下错误

Scanning dependencies of target opencv_createsamples
[ 98%] Building CXX object apps/haartraining/CMakeFiles/opencv_createsamples.dir/createsamples.cpp.o
Linking CXX executable ../../bin/opencv_createsamples
/usr/local/arm/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lv4l1
collect2: ld returned 1 exit status
make[2]: *** [bin/opencv_createsamples] Error 1
make[1]: *** [apps/haartraining/CMakeFiles/opencv_createsamples.dir/all] Error 2
make: *** [all] Error 2

似乎 opencv 正在寻找 libv4l1。在进行 aptitude search 时,我发现在我的机器上我已经安装了 libv4l 和 libv4l2。在this web 中,我发现 Ubuntu 12.04 不推荐使用 libv4l1。有什么建议吗?谢谢!

【问题讨论】:

    标签: opencv ubuntu arm ubuntu-12.04 cross-compiling


    【解决方案1】:

    目标环境需要 libv4l1。你机器的libv4l1没用。

    【讨论】:

      【解决方案2】:

      我解决了这个问题。我没有为 ARM 编译 libv4l 并使用 cmake-gui 创建 make 文件,而是使用 /platforms/linux/ 中的 cmake 文件 交叉编译详情请查看Open CV page

      注意:我更改了 cmake 文件,以便通过设置 CMAKE_C_COMPILER、CMAKE_CXX_COMPILER 和 ARM_LINUX_SYSROOT 变量来查找为我的目标板 (mini6410) 提供的 arm 编译器工具链,而不是查找安装在我的系统中的 arm 编译器

      OpenCV库工作,我可以在目标板上将图像从RGB转换为灰度,并将灰度图像保存为.jpg文件,在我的主机中查看图像

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-17
        • 2016-12-12
        • 2016-10-28
        • 2014-07-10
        • 2021-02-05
        • 1970-01-01
        • 2022-06-11
        • 2015-08-22
        相关资源
        最近更新 更多