ffmpeg(1)之libavutil/common.h:30:2: error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS

说明

  • 编译环境: mac osx 10.14 + cmake + clang++
  • 写了一个简单c++的范例调用ffmpeg函数完成音频采集

出错提示

[build] /usr/local/ffmpeg/include/libavutil/common.h:30:2: error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
[build] #error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
[build]  ^
[build] 1 error generated.
[build] make[2]: *** [CMakeFiles/ffmpeg_demo.dir/example/main.cc.o] Error 1
[build] make[1]: *** [CMakeFiles/ffmpeg_demo.dir/all] Error 2

解决办法

  • clang 提示的很明显: 需 定义宏 __STDC_CONSTANT_MACROS
  • 引文ffmpeg库中的函数是C语言,而我是用的c++调用。
  • __STDC_CONSTANT_MACROS 一定要放在 include 之前
#define __STDC_CONSTANT_MACROS
extern "C"{
#include "/usr/local/ffmpeg/include/libavutil/log.h"
#include <libavformat/avformat.h>
#include <libavdevice/avdevice.h>
}
posted @ 2021-05-27 00:34  mohist  阅读(406)  评论(0编辑  收藏  举报