环境: 虚拟机
操作系统ubuntu10.04
交叉工具arm-none-linux-gnueabi-
下载gdb-7.6,下载地址:,解压到合适的文件夹下,tar -xvzf gdb-7.6.tar.gz
首先把交叉编译工具的路径加入到profile中,我这里是/root/.bash_profile。
开始交叉编译:
1. cd gdb-7.6
2. source /root/.bash_profile(source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。)
-
PATH="/root/CodeSourcery/Sourcery_G++_Lite/bin:${PATH}"
3.
-
./configure --host=arm-none-linux-gnueabi --build=arm-linux --enable-targets=arm-linux --prefix=/usr/local/dvsdk/gdb-7.6/arm
-
make
-
make install
在安装过程中出现的问题:
1.缺少ncurses库支持,解决方法重新交叉编译ncurses.
下载ncurses-5.9
-
./configure --host=arm-none-linux-gnueabi --build=arm-linux --prefix=/usr/local/dvsdk/ncurses-5.9/arm
-
make
-
make install
2.configure: error: no termcap library found.
参考方法:
先要找到交叉编译工具gcc的默认搜索库目录,可以通过下面命令:
-
arm-none-linux-gnueabi-gcc -print-libgcc-file-name
然后把交叉编译好的libncurses.a,通过下面做一个软连接。
-
ln -s /usr/local/dvsdk/ncurses-5.9/arm/lib/libncurses.a /root/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/libtermcap.a
3. arm-none-linux-gnueabi/bin/ld: cannot find -lncurses,修改gdb目录下的makefile文件。
在Makefile文件中找到下面的内容:
-
CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER)
-
$(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) -lncurses -lm -ldl
-
$(LIBEXPAT) $(LIBLZMA)
-
$(LIBIBERTY) $(WIN32LIBS) $(LIBGNU)
修改为:
-
CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
$(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) -L/usr/local/dvsdk/ncurses-5.9/arm/lib -lncurses -ldl -lm \
$(LIBEXPAT) $(LIBLZMA) \
$(LIBIBERTY) $(WIN32LIBS) $(LIBGNU)
参考地址:
1.http://blog.csdn.net/skyflying2012/article/details/7854588
阅读(4332) | 评论(0) | 转发(0) |