在做一个项目时,需要用到音视频封装格式信息,就使用ffmpeg源码编译出静态库,然后链接到程序中。但在编辑SConstruct文件时,没关注ffmepg相关几个lib库的先后顺序,出现很多undefined错误。 最后通过上网查询原因,了解到ffmepg的几个库链接时是有先后顺序的,调整几个库的顺序之后最终链接通过。之后我想了想这几个库 的顺序和一个音视频文件的解析顺序差不多一致,首先是解析音视频封装,其次解复用,再次解码,这样以后再使用时,就能大概知道这几个库的先后顺序了:
1、我自己写的链接顺序:-lavcodec -lavformat -lavdevice -lavutil (其他两个库没使用到所以不在其中)
2、纠正之后的链接顺序:-lavformat -lavdevice -lavcodec -lavutil