参考了https://blog.csdn.net/wzxsjdt/article/details/41693025,感谢博主的分享
需要源材料:codeblock,x264代码包,汇编解释器yasm
1. x264下载:http://www.videolan.org/developers/x264.html
2. yasm:http://yasm.tortall.net/Download.html,yasm解压文件夹下需要make
./configure
make
sudo make install
3. codeblock下建立x264工程:
3.1 打开Code::Blocks,File->New->Project->Empty Progect,输入名称路径x。路径和264的路径一致,比如下图,然后一直next,finished。
3.2 接下来开始配置工程,右键工程->Properties,补完Makefile的路径,选上“This is a customer file”
3.3 再次右键工程进入Properties,点击右下角Project's build option,在Make commands选项卡中把所有$target去掉,确定。
3.4 右键工程->Build Option->Make commands,去掉所有$target,确定。
4. Build->Build,或者ctrl+F9,编译x264,0 errors, 0warnings,在x264文件夹下生成x264可执行文件和一些过程文件
5. Debug
首先在x264.c的main函数里加几个断点。
Debug->Start/Continue,出现错误:没有符号表被读取。请使用 "file" 命令。
这是由于x264可执行文件路径错误造成的,一般code blocks工程默认的编译路径是在bin/debug/x264,而我们是用Makefile编译的,x264文件就在当前目录下,gdb自然找不到文件了。解决的方法有两种:修改Makefile和修改codeBlocks的默认路径。因为Makefile是源码自带的,所以我选择修改codeBlocks。
右键工程->Properties->Buildtargets,在output filename里把路径改成当前文件夹,确定。
6. Debug->Start/Continue,再次出错:no debugging symbols found 。
这是因为在x264可执行文件中没有调试符号,这也是Debug版和Release版的区别,因为codeBlocks是根据Makefile编译的,所以要想加入调试信息就必须修改Makefile的配置。运行终端。在x264目录下执行:
./configure --enable-debug
之后会重新生成Makefile文件,Rebuild工程,Debug->Start,接下来就可以Next Line了。
7. 配置命令行参数
x264 --output /dev/null --input-res 416x240 ~/BasketballPass_416x240_50.yuv