OpenCV2.0.0
undefined reference to `cvCreateCameraCapture_V4L(int)'
这个问题可以参考:https://code.ros.org/trac/opencv/changeset/5206,解决如下:
修改OpenCV2.0.0/cvconfig.h.cmake文件如下:
19 19 /* V4L2 capturing support */
20 20 #cmakedefine HAVE_CAMV4L2
21
22 /* V4L/V4L2 capturing support via libv4l */ //增加这一行
23#cmakedefine HAVE_LIBV4L //增加这一行
21 24
22 25 /* Carbon windowing environment */
修改 OpenCV2.0.0/src/highgui/cvcap.cpp如下:
172 172 return capture;
173 173 #endif
174 #if defined (HAVE_CAMV4L) || defined (HAVE_CAMV4L2) //删除这一行
174 #if defined HAVE_LIBV4L || (defined (HAVE_CAMV4L) && defined (HAVE_CAMV4L2)) //增加这一行
175 175 capture = cvCreateCameraCapture_V4L (index);
176 176 if (capture)
修改 OpenCV2.0.0/src/highgui/cvcap_libv4l.cpp如下:
227 #if !defined WIN32 && defined HAVE_CAMV4L && defined HAVE_CAMV4L2 //删除这一行
227 #if !defined WIN32 && defined HAVE_LIBV4L //增加这一行
228 228
229 229 #define CLEAR(x) memset (&(x), 0, sizeof (x))
… …
242 242 #include <sys/ioctl.h>
243 243
244#ifdef HAVE_CAMV4L //增加这一行
244 245 #include <linux/videodev.h>
246#endif //增加这一行
247#ifdef HAVE_CAMV4L2 //增加这一行
245 248 #include <linux/videodev2.h>
249#endif //增加这一行
246 250
247 251 #include <libv4l1.h>