FFmpeg在MAC调试运行

无论是在使用FFmpeg时,或者学习FFmpeg的源码时,能调试跟踪代码,都是很是方便的。然而,跟无数的开源库同样,ffmpeg是用makefile来管理的,并不能直接生成xcode的项目。xcode

好在Xcode提供了一个External Build的功能。操做流程以下:学习

  • 新建一个External Build System的空项目ffmpeg。
New->Project->Cross-platform->External Build System

WeChat89766cca4901f11daed2fbba5b1db633.png

  • 在Info栏填写ffmpeg库的地址WeChat01f4029edce2250b6a1a49f59f794b6e.png
  • 导入源代码

WeChat5e413e1eba2ded015c76b5c8fc35c12b.png

  • 构建ffmpeg项目

去ffmpeg源码目录,按需求配置./configure。为了调试,须要在参数里增长--enable-debug=3 --disable-optimizations --disable-asm --disable-stripping。而后在Xcode中像普通项目同样构建。测试

注:我测试的时候直接构建报了一个错,而后去ffmpeg目录下make一次,成功以后,再从新构建OK了。不肯定这一步是否必须。ui

  • 新建测试项目FFmpegTest,加入同一个workspace。这样放:

WeChat4b36564afd7c9cda29e3666532767cf5.png

并设置FFmpegTest依赖项目ffmpeg。
WeChat48bbb3594e7f129f7872d491bbabbb82.png
设置FFmpetTest依赖ffmpeg的库。ffmpeg生成的库在各个模块的libxxx目录下。
并配置FFmpegTest的include,lib路径。
WeChatf82e790efc92e6e1df47b6fb3c46493f.pngspa

因为依赖的静态库,还须要添加ffmpeg依赖的系统库(红框部分)。
WeChateb08257851959dd1bcb6366b4d50d44a.png.net

  • 效果

如今能够调试了,亲测,能够单步跟踪,能够断点。不过没法经过跳转找到代码。debug

参考文章:
xcode5 导入 makefile
ffmpeg编译时保留调试信息调试

相关文章
相关标签/搜索