FFMPEG日志系统打印hello world

本文详细记录了在使用FFMPEG4.1版本时遇到的编译错误,具体为C1189错误,缺少__STDC_CONSTANT_MACROS定义。通过在包含FFMPEG相关文件前添加#define__STDC_CONSTANT_MACROS宏定义,成功解决了编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考雷神博客

FFMPEG4.1版本

#include <stdio.h>

extern "C"
{
#include <libavutil/log.h>
};

int main(int argc, char** argv)
{
	av_log_set_level(AV_LOG_DEBUG);

	av_log(NULL, AV_LOG_INFO, "Hello World!\n");

	return 0;
}

报错:
1>FFMPEG.cpp
1>H:\Document\Typora\FFmpeg\vcpkg-master\vcpkg-master\installed\x86-windows\include\libavutil\common.h(30,1): fatal error C1189: #error: missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
1>已完成生成项目“FFMPEG.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

点击错误,查看源码:

#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) && !defined(UINT64_C)
#error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS
#endif

报错,提示我们缺少__STDC_CONSTANT_MACROS的定义,直接添加该宏:
修改后:

#include <stdio.h>

extern "C"
{
#define __STDC_CONSTANT_MACROS
#include <libavutil/log.h>
};

int main(int argc, char** argv)
{
	av_log_set_level(AV_LOG_DEBUG);

	av_log(NULL, AV_LOG_INFO, "Hello World!\n");

	return 0;
}

==注意:#define __STDC_CONSTANT_MACROS语句必须放在FFMPEG相关文件声明之前。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值