一步一步学习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; }
分类:
ffmpeg
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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 面向对象的六大原则