博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下编译调试x264
阅读量:5371 次
发布时间:2019-06-15

本文共 1435 字,大约阅读时间需要 4 分钟。

在中我们用vs2010编译了x264,但是过程很复杂,而且版本还是09年的,今天我将介绍在linux下编译最新版的x264,而且可以调试,近距离观察h264编码实现的每个细节。

下载x264源码

 

cd ~git clone git://git.videolan.org/x264.git

这里我用git来下载最新的源码,也可以访问官网手动下载:ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

安装yasm

因为x264源码中有一些程序是用汇编写的,这样可以提高编码性能,所以在编译的时候需要一个汇编解释器。
如果用的是ubuntu系统的话可以使用

sudo apt-get install yasm

安装Code::Blocks

为了能够好的调试x264源码,我们需要一个IDE,在此我推荐Code::Blocks,在ubuntu自带的软件中心搜索安装即可。

建立x264工程

打开Code::Blocks,File->New->Project->Empty Progect->Go,Next,输入名称和路径,这里要和x264的路径一致,比如我的

 

code blocks x264 project

注意要把最后一项Resulting filename自动生成那个x264删除掉

Next->Finish!

接下来开始配置工程,右键工程->Properties,补完Makefile的路径,选上“This is a customer file”,确定。

再次右键工程进入Properties,点击右下角Project’s build option,在Make commands选项卡中把所有$target去掉,确定。

右键工程->Build Option->Make commands,去掉所有$target,确定。
然后把一些主要的文件加到工程里去,比如x264.c。

Build

Build->Build,或者ctrl+F9,编译x264,0 errors, 0 warnings,在x264文件夹下生成x264可执行文件和一些过程文件。

Debug

首先在x264.c的main函数里加几个断点。
Debug->Start,出现错误:没有符号表被读取。请使用 “file” 命令。
这是由于x264可执行文件路径错误造成的,一般code blocks工程默认的编译路径是在bin/debug/x264,而我们是用Makefile编译的,x264文件就在当前目录下,gdb自然找不到文件了。解决的方法有两种:修改Makefile和修改codeBlocks的默认路径。因为Makefile是源码自带的,所以我选择修改codeBlocks。
右键工程->Properties->Build targets,在output filename里把路径改成当前文件夹,确定。

Debug->Start,再次出错:no debugging symbols found 。

这是因为在x264可执行文件中没有调试符号,这也是Debug版和Release版的区别,因为codeBlocks是根据Makefile编译的,所以要想加入调试信息就必须修改Makefile的配置。运行终端,

cd ~/x264./configure --enable-debug

 

转载于:https://www.cnblogs.com/yinxiangpei/articles/2844964.html

你可能感兴趣的文章
CSS: caption-side 属性
查看>>
CSS3中box-sizing的理解
查看>>
linux下编译安装nginx
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
Intellij idea创建javaWeb以及Servlet简单实现
查看>>
FFmpeg进行视频帧提取&音频重采样-Process.waitFor()引发的阻塞超时
查看>>
最近邻与K近邻算法思想
查看>>
【VS开发】ATL辅助COM组件开发
查看>>
FlatBuffers In Android
查看>>
《演说之禅》I & II 读书笔记
查看>>
thinkphp3.2接入支付宝支付接口(PC端)
查看>>
【转】在Eclipse中安装和使用TFS插件
查看>>
C#中Monitor和Lock以及区别
查看>>
【NOIP2017】奶酪
查看>>
5.6.3.7 localeCompare() 方法
查看>>
Linux下好用的简单实用命令
查看>>
描绘应用程序级的信息
查看>>
php环境搭建脚本
查看>>