在codeblock中出现:没有符号表被读取。请使用 "file" 命令。
也就是编译没有错误,但无法进行断点调试。
出现这种错误原因有3:
1. 编译出的debug下的可执行文件,在调试载入时可能在release目录下找,自然无法找到,因而出此错。
2.在编译的时候
gcc -g hello.c -o hello
我没有加-g,所以gdb的时候报错
3.如下解释:
在VS2010编译x264(20091006)中我们用vs2010编译了x264,但是过程很复杂,而且版本还是09年的,今天我将介绍在linux下编译最新版的x264,而且可以调试,近距离观察h264编码实现的每个细节。
cd ~
git clone git://git.videolan.org/x264.git
这里我用git来下载最新的源码,也可以访问官网手动下载:ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
sudo apt-get install yasm
来安装,但由于更新源的问题安装的是0.8版本的yasm,而最新的x264要求的最低版本是1.0。没办法只能手动安装了,官网下载地址:
http://yasm.tortall.net/Download.html
下载最新版的Source.tar.gz,解压安装
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make && make install
为了能够好的调试x264源码,我们需要一个IDE,在此我推荐Code::Blocks,在ubuntu自带的软件中心搜索安装即可。
Next->Finish!
接下来开始配置工程,右键工程->Properties,补完Makefile的路径,选上“This is a customer file”,确定。
再次右键工程进入Properties,点击右下角Project's build option,在Make commands选项卡中把所有$target去掉,确定。右键工程->Build Option->Make commands,去掉所有$target,确定。
然后把一些主要的文件加到工程里去,比如x264.c。
Debug->Start,再次出错:no debugging symbols found 。
这是因为在x264可执行文件中没有调试符号,这也是Debug版和Release版的区别,因为codeBlocks是根据Makefile编译的,所以要想加入调试信息就必须修改Makefile的配置。运行终端,
cd ~/x264
./configure --enable-debug
之后会重新生成Makefile文件,Rebuild工程,Debug->Start,接下来就可以Next Line了。