0

我正在关注博客中有关为 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。在这个 web中,我发现 Ubuntu 12.04 不推荐使用 libv4l1。有什么建议吗?谢谢!

4

2 回答 2

0

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

于 2013-05-15T05:29:31.647 回答
0

我解决了这个问题。我没有为 ARM 编译 libv4l 并使用 cmake-gui 创建 make 文件,而是使用 /platforms/linux/ 中的 cmake 文件。有关交叉编译的详细信息,请参阅Open CV 页面

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

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

于 2013-05-16T06:11:10.950 回答