linux下编译调试x264

本文介绍如何在Linux环境下使用Code::Blocks编译并调试x264源码,通过Git获取最新源码,并配置必要的开发环境。

VS2010编译x264(20091006)中我们用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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值