我目前正在进行一项研究,比较不同操作系统在图像处理中的性能。因此,我必须在 FreeBSD 系统上安装 OpenCV 2.4.x(最好是 2.4.3)。
问题是它包含asm/types.h,它不是一个符合POSIX的库,而是一个Linux库。
所以我使用安装指南建议的标准标志运行 cmake:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
其中 .. 正确指向源文件夹。一切顺利,所以我运行 make:
[ 16%] 构建 CXX 对象模块/highgui/CMakeFiles/opencv_highgui.dir/src/cap_libv4l.cpp.o
/root/work/OpenCV-2.4.3/modules/highgui/src/cap_libv4l.cpp:238:54:错误:asm/types.h:没有这样的文件或目录
问题是:我应该怎么做才能告诉编译器它需要包含另一个头文件而不是原始头文件?
这个问题在 Bug#651872 中得到了解决: opencv: ftbfs on kfreebsd
在 modules/highgui/src/cap_libv4l.cpp 中,删除或注释掉以下内容,包括:
#include <asm/types.h>
在 modules/highgui/src/cap_v4l.cpp 中执行相同的操作。