arm單板上移植gdb

虛擬機 : vmware 12 linux

image: ubuntukylin 14.04.1 ubuntu

系統版本:Linux dancy 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linux工具

 

虛擬機安裝好以後,安裝一下基本的工具環境ui

sudo apt-get updatees5

sudo apt-get install build-essentialspa

 

arm交叉編譯工具鏈: arm-none-linux-gnueabi , 下載地址 http://www.veryarm.com/cross-tools ,選擇 2012.09 月的版本ip

gdb 源碼下載地址: http://ftp.gnu.org/gnu/gdb/ci

我下載了 gdb-7.4.1.tar.bz2 ,解壓進入代碼目錄:get

./configure --host=arm-none-linux-gnueabi源碼

 

貌似很正常,開始make

然而過了一會,就會出現 

configure: WARNING: no enhanced curses library found; disabling TUI
checking for library containing tgetent... no
configure: error: no termcap library found

 

網上找了不少方法,都無論用

好比安裝ncurses庫: sudo  apt-get install libncurses5-dev, 裝了也沒用

 

好比下載 termcap-1.3.1.tar.gz 編譯 放入到 工具鏈的 /lib目錄,好比 /home/arm-2012.09/arm-none-linux-gnueabi/lib  也是沒用的,因而我仔細的想上面的錯誤信息,在configure的過程裏,應該首先是使用ncurses庫,沒找到呢,也不會繼續找termcap庫,因此

 

下載 ncurses-5.5-tar.gz 編譯安裝以下,這個問題總算解決了。

下載地址: http://ftp.gnu.org/gnu/ncurses/

./configure --host=arm-none-linux-gnueabi --prefix=/home/arm-2012.09/arm-none-linux-gnueabi

make

make install

 

這個時候,再去make gdb就不會出上面的錯誤了,然而事情並不會那麼簡單,後面會繼續出現新的問題。

In file included from arm-linux-nat.c:25:0:
linux-nat.h:79:18: error: field 'siginfo' has incomplete type
arm-linux-nat.c: In function 'arm_linux_stopped_data_address':
arm-linux-nat.c:1141:23: error: dereferencing pointer to incomplete type
arm-linux-nat.c:1144:16: error: dereferencing pointer to incomplete type
arm-linux-nat.c:1145:20: error: dereferencing pointer to incomplete type
arm-linux-nat.c:1157:46: error: dereferencing pointer to incomplete type

這裏應該是源碼跟linux系統的頭文件匹配不上啦,有人建議修改這個siginfo爲siginfo_t這個結構體,可是我以爲不必去修改了,直接下載了 gdb-7.6.1.tar.gz 編譯OK

編譯命令:

./configure --host=arm-none-linux-gnueabi

make

make install

 

而後在源碼的gdb目錄就能夠看到gdb可執行文件:

dancy@dancy:~/downloads/gdb-7.6.1/gdb$ file gdbgdb: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

相關文章
相關標籤/搜索