FFmpeg,Fplay,clion调试环境搭建

本系列 以 ffmpeg4.4 源码为准。本文主要讲解如何搭建 ffplay 的CLion调试环境。 ffmpeg 在 Linux 环境下更好调试。

本文系统是 Ubuntu 18,首先下载 FFmpeg-n4.4.1.zip ,虽然 FFmpeg 是通过 makefile 编译的,但是还是可以用 Clion 来调试,比 gdb 更直观一些。CLion 目前的最新版本比较完善,早几年我用的时候,调试好像必须提供 CMakeList 文件,现在只有 makefile 文件也能用 Clion 调试了。

操作步奏如下:
 

# 安装以下软件。
apt-get install diffutils make pkg-config yasm
apt-get install libsdl2-2.0
apt-get install libsdl2-dev
# 先执行 configure
./configure \
--prefix=/home/ubuntu/ffmpeg/build64/ffmepg-4.4-ubuntu \
--enable-gpl \
--enable-nonfree \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping

这里有三个重点要注意:

1,要编译出 ffplay 可执行文件,必须安装 sdl2 库

2,上面的 configure 不要开启动态库,静态库调试会方便很多。ffmpeg 4.4 你不加 --enable-shared 就是使用静态库编译。configure 的规则是静态库动态库只能二选一。

3,后面有好几个选项是开启 debug 模式,告诉编译器不要优化代码,因为有时候优化代码,C程序的跳转看起来很奇怪。

现在打开 Clion,打开 FFmpeg 源码目录,再点击 Load Makefile Project 按钮。如下图:

稍等片刻,Clion 就能加载完成,就会出现 很多 makefile 的 target 可以选择,如下图:

之前的文章<a href="https://linhttp://k.juejin.cn/?target=https%3A%2F%2Fwww.xianwaizhiyin.net%2F%3Fp%3D566">《ffmpeg-makefile编译分析》,讲过,makefile 的默认 target 是 all ,所以选择 all 就能编译出 ffplay 可执行文件。

makefile 可以有很多 target 的,也可以单独编译某个target。如果只需使用某个模块的动态库,就可以单独编译这个模块的target。

点击 上面的 Edit Configurations ,配置一些东西,如下图:

注意 Clion 的 Load Makefile Project 自动加的 是 Makefile Application,不是 Makefile target。所以需要你自己用命令行编译出 ffplay 可执行文件。使用 make -j 16 命令编译,即可产生 ffplay 可执行文件。然后把 ffplay 的路径填到 Clion的 Executable 那里就行了。

现在 在 ffplay.c 文件的 main() 入口打一个断点,如下图:
 

从上图可以看到,断点成功了,step into 跳进去 avformat_open_input() 等内部函数也可以顺利看到数据,如下图:

这样,使用Clion 大大降低了新人调试 理解 ffplay 逻辑的难度。再提一点,刚刚 make 编译出 ffpaly 的同时,可执行文件 ffmpeg 也编译出来了,所以同理,ffmpeg 也能这样断点调试。

原文 FFmpeg,Fplay,clion调试环境搭建 - 掘金

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

猜你喜欢

转载自blog.csdn.net/yinshipin007/article/details/131731064
今日推荐