一步一步学习ffmpeg编程:一走进ffmpeg的大门

第一次在windows上编写ffmpeg程序,把遇到的问题记下来

1.  新建了一个win32的应用程序,选择了空项目

     写了int main(int argc, char** argv(){}后出现了

     error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用

     原因:c语言运行时找不到适当的程序入口函数,一般情况下,如果是windows程序,那么WinMain是入口函数,如果是dos控制台程序,那么main是入口函数,而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。

     解决方案:项目——> 项目属性——> 配置属性——> 链接器——> 系统——> 子系统

     选择控制台(SUBSYSTEM:CONSOLE)  则表示此项目是WIN32控制台程序。

     选择Windows (/SUBSYSTEM:WINDOWS) 则表示为 WIN32项目。

 

2. libavutil\common.h(87): fatal error C1004: 发现意外的文件尾

      解决方法:加入代码#define __STDC_CONSTANT_MACROS

3. 无法解析的外部符号 "void __cdecl av_log_set_level(int)" (?av_log_set_level@@YAXH@Z),该符号在函数 _main 中被引用

      原因:ffmpeg中的程序是C语言写的,如果C++调用需要加上extern "C"

      解决方案

  

1
2
3
4
extern "C"
{
    #include <libavutil/log.h>
};

 

所有代码

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

#pragma comment(lib,"avutil.lib")


int main(int argc, char** argv)
{
    av_log_set_level(AV_LOG_DEBUG);
    av_log(NULL, AV_LOG_INFO, "一步一步学习ffmpeg!\n");
    av_log(NULL, AV_LOG_INFO, "一步一步学习ffmpeg, %s\n", "一起腾飞吧!");
    av_log(NULL, AV_LOG_INFO, "一步一步学习ffmpeg, %d!\n", 6666);
    return 0;
}
复制代码

 

 

posted @   unicornsir  阅读(299)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2020-03-15 Tutorial 1 : Opening a window
2020-03-15 面向对象的六大原则
点击右上角即可分享
微信分享提示