本来想今晚把gdb-7.0.1早点编译完,做些。因为之前自己已经在fedroa10上编译过7.3很顺利,没有遇到什么问题,tar之后就是make,再接着make install很快结束了。但是没想到却花费了自己一晚上的时间。才将其编译完成。
一开始就碰上-werror这个错误,就是存在定义了但是没有使用的变量。据说在gcc4.2以前的版本中,是没有默认这个的。是在gcc4.3以后才有的。于是自己找到相应的makefile文件,将其中的-werror给注释掉了。接着编译没有再报这样的错误。但是如果有很多这样的文件到时候修改岂不是很麻烦?于是又在网上找到了在编译时使用--disable-werror标志,就可以屏蔽掉-werror的功能。
之后再编译时遇到了use autoconf 2.64 instead of 2.67.的错误报告。检查configure. ac文件发现,在AC_PREREQ中确实是2. 64,即自己使用的版本太新了。当时一套autotool工具是一起从gnu. org网站上下载的。如果一次版本不对我就要重新安装一次,岂不是要累死了?于是我试着>将configure.ac中的AC_PREREQ(2.64) 修改为2.67d但是之后错误依旧,这是注意到在里边涉及到一_GCC_AUTOCONF_VERSION宏,于是根据提示信息打开config/override.m4文件,发现其中凡是涉及_GCC_AUTOCONF_VERSION都是2. 64,于是将其都更改为2.67再次编译没有再次马上报错。
本以为马上就要大功告成了。但是突然又爆出一个错误,can't found termcap library. 于是查找了自己的user/lib,usr/local/lib 都没有发现termcap库文件。于是在网上再次搜索,找到这样一个解释:
在使用Ubuntu编译一些文件时会提示No curses/termcap library found这样的话,这个提示的意思很明显,缺少termcap库文件。
解决这个问题的方法是使用下面的命令安装
sudo apt-get install libncurses5-dev
然后再重新编译刚才的文件就可以了。
于是按照提示命令操作安装上了库文件。
再次编译一切正常,make install。
安装成功。
编译命令:
./configure --target=arm-none-linux-gnueabi --prefix=/home/tt/Public/arm_linux_4_2/gdb_7.3 --disable-threads --disable-multilib --disable-shared --with-newlib--enable-maintainer-mode --disable-werror --enable-interwork --disable-nls--disable-libquadmath --enable-checking=release --enable-languages=c
(后来有个小插曲,在自己将要写完的时候,误将网页关闭了,于是又重新写了内容)
参考:
http://blog.csdn.net/taina2008/article/details/2248010
http://www.linuxidc.com/Linux/2009-08/21339.htm