ffmpeg之libavutil/common.h:30:2: error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT(代码

Posted mohist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg之libavutil/common.h:30:2: error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT(代码相关的知识,希望对你有一定的参考价值。

说明

  • 编译环境: 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>
}

以上是关于ffmpeg之libavutil/common.h:30:2: error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT(代码的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg安装之mac安装

ffmpeg系列之编译安卓版ffmpeg库

ffmpeg安装之docker安装

ffmpeg安装之linux编译安装

ffmpeg系列之编译安卓版ffmpeg库

. Android ffmpeg 播放器之编译ffmpeg-01