交叉编译OpenCV找不到libv4l1

时间:2013-05-15 04:26:35

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

我正在关注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搜索,我发现在我的机器上我安装了libv4l和libv4l2。在this web中,我发现Ubuntu 12.04不推荐使用libv4l1。有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

注意:我更改了cmake文件,以便不是在我的系统中查找安装了arm编译器,而是通过设置CMAKE_C_COMPILER,CMAKE_CXX_COMPILER和ARM_LINUX_SYSROOT varibles

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