ffmpeg 是使用C语言写的,默认使用C编译,如果要在C++中调用ffmpeg,则有可能出现错误:
ffmpeg: 'UINT64_C' was not declared in this scope
解决办法三种:
一种是:
extern "C"{
#ifdef __cplusplus
#define __STDC_CONSTANT_MACROS
#ifdef _STDINT_H
#undef _STDINT_H
#endif
# include <stdint.h>
#endif
}
第二种是在ffmpeg的common.h文件中添加语句:
/usr/local/include/libavutil/common.h中添加:
#ifndef UINT64_C
#define UINT64_C(value)__CONCAT(value,ULL)
#endif
http://code.google.com/p/ffmpegsource/issues/detail?id=11
第三种:
在该头文件加以下语句就行了。
#ifndef INT64_C
#define INT64_C
#define UINT64_C
#endif
这个要放在
extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/avutil.h>
}
本文介绍了解决在C++项目中调用ffmpeg遇到的'UINT64_C'未声明错误的方法,提供了三种解决方案,包括修改头文件、添加预处理宏定义等。
2万+

被折叠的 条评论
为什么被折叠?



