如何编译Linux 11.04中的OpenCV

我正在尝试用cmake编译OpenCV,但是我不断收到以下错误。

[ 73%] Building CXX object src/highgui/CMakeFiles/highgui.dir/cvcap_ffmpeg.o In file included from /usr/include/libavutil/avutil.h:81:0, from /usr/include/libavcodec/avcodec.h:30, from /usr/include/libavformat/avformat.h:56, from /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:97: /usr/include/libavutil/common.h: In function 'int32_t av_clipl_int32(int64_t)': /usr/include/libavutil/common.h:154:47: error: 'UINT64_C' was not declared in this scope /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp: In member function 'virtual bool CvCapture_FFMPEG::grabFrame()': /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:546:9: warning: 'int avcodec_decode_video(AVCodecContext*, AVFrame*, int*, const uint8_t*, int)' is deprecated (declared at /usr/include/libavcodec/avcodec.h:3452) /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:548:54: warning: 'int avcodec_decode_video(AVCodecContext*, AVFrame*, int*, const uint8_t*, int)' is deprecated (declared at /usr/include/libavcodec/avcodec.h:3452) /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp: In member function 'virtual bool CvVideoWriter_FFMPEG::open(const char*, int, double, CvSize, bool)': /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:1199:8: warning: 'AVOutputFormat* guess_format(const char*, const char*, const char*)' is deprecated (declared at /usr/include/libavformat/avformat.h:787) /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:1199:41: warning: 'AVOutputFormat* guess_format(const char*, const char*, const char*)' is deprecated (declared at /usr/include/libavformat/avformat.h:787) /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:1213:7: warning: 'AVFormatContext* av_alloc_format_context()' is deprecated (declared at /usr/include/libavformat/avformat.h:947) /vol/cruk/Packages/irtk_ubuntu1104/vdm108/OpenCV200w/src/highgui/cvcap_ffmpeg.cpp:1213:31: warning: 'AVFormatContext* av_alloc_format_context()' is deprecated (declared at /usr/include/libavformat/avformat.h:947) make[2]: *** [src/highgui/CMakeFiles/highgui.dir/cvcap_ffmpeg.o] Error 1 make[1]: *** [src/highgui/CMakeFiles/highgui.dir/all] Error 2 make: *** [all] Error 2 

我不知道为什么它这样做。 我真的很感激任何意见。

我假设你正在用C ++编译器编译它。 如果你这样做,你应该定义一个__STDC_CONSTANT_MACROS标志,使整个事情成功编译。

更多信息: FFMPEG常见问题

在尝试安装ffmpeg支持时遇到了一些问题。

检查这个SO问题: 使用ffmpeg安装Open-CV时出错 :您会发现一些指示和指向编译教程的链接。