FFmpeg在configure时默认是不开启Debug模式的,我们需要再 configure时使用选项来开启,如下:
开启Debug模式
./configure \
--enable-gpl \
--enable-nonfree \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping \
--disable-shared \
--enable-static
上面的 configure 不要开启动态库,静态库调试会方便很多。 开启静态库最保险的方式就是添加如下两个选项:
--disable-shared --enable-static
后面有好几个选项是开启 debug 模式,告诉编译器不要优化代码,因为有时候优化代码会改变代码原来的运行顺序,导致调试的时候跳转看起来很奇怪。
-
–enable-gpl: 启用GPL许可证,这允许使用GPL许可证下的代码。启用此选项将允许编译包含GPL许可证的代码,但是也意味着生成的FFmpeg库或工具可能受到GPL许可证的限制。
-
–enable-nonfree: 启用非自由(非自由许可证)功能。如果需要使用一些不受自由许可证的代码或功能,则需要启用此选项。启用此选项可能会导致生成的FFmpeg库或工具包含一些受限制的功能。
-
–enable-debug=3: 启用调试模式,级别为3。这将使得生成的可执行文件包含更多的调试信息,以帮助诊断问题。
-
–disable-optimizations: 禁用优化。通常,编译器会对代码进行优化以提高执行速度或减小生成的可执行文件的大小。禁用优化意味着生成的可执行文件可能会执行得更慢或更大,但也可能更容易调试和理解。
-
–disable-asm: 禁用汇编优化。在一些情况下,FFmpeg会使用汇编代码来优化特定的功能,但这可能会导致在某些平台上出现问题或不兼容。禁用汇编优化可以避免这些问题,但可能会牺牲一些性能。
-
–disable-stripping: 禁用剥离。剥离是指从生成的可执行文件中移除调试符号和其他不必要的信息,以减小文件大小。禁用剥离可以保留这些信息,使得生成的可执行文件更容易调试。