關於Gdb工具的交叉編譯 移植

2021-10-10 13:40:54 字數 2203 閱讀 5608

總結為了在arm-linux處理器上捕捉程式異常,除錯程式,需使用gdb工具,需要將gdb原始碼使用交叉編譯工具編譯成為可在arm處理器上執行的格式。需要的工具為交叉編譯工具鏈arm-none-linux-gnueabi-gcc 本人使用的是4.3.2版本交叉工具鏈。編譯中需要的依賴庫有termcap。

我使用的是termcap1.3.1的庫,大家可以使用此庫使用交叉編譯工具編譯成為靜態庫為編譯gdb所依賴的庫。以下為編譯termcap的操作步驟。

tar -zxvf termcap1.3.1.tar.gz

cd termcap1.3.1

./configure --prefix=/home/termcap/

make

make

install

操作完上面的命令後會在我們定義的、home/termcap/中的lib中檢視到libtermcap.a庫。

注:修改makefile 中的cc = gcc 改為 cc = arm-linux-gcc ar = ar 改為 ar = arm-linux-ar 後再進行make 以及後面的操作

tar -zxvf gdb7.0.tar.gz

cd gdb7.0

./configure --host=arm-none-linux-gnueabi cc=arm-none-linux-gnueabi-gcc cpp=arm-none-linux-gnueabi-g++ ar=arm-none-linux-gnueabi-ar --enable-shared --prefix=/home/gdb/ --without-x --disable-gdbtk --disable-tui --without-include-regex --without-include-gettext

ldflags=

"-l/home/termcap/lib" cppflags=

"-i/home/termcap/include"

#配置生產makefile

make cc=arm-none-linux-gnueabi-gcc cxx=arm-none-linux-gnueabi-g++ ar=arm-none-linux-gnueabi-ar

make

install

/生成 makefile

//–enable-shared:動態編譯

//–host=arm-linux:用 arm-linux-gcc 編譯

//–prefix=/usr/local/gdb 安裝目錄

//–without-x 取消 x windows 支援

//–disable-gdbtk 取消 gdbtk,應該也是圖形介面相關的

//–disable-tui 取消 tui 介面

//–without-included-regex 關閉正規表示式庫

//–without-included-gettext 去掉用於多語言處理的 gettext庫,正規表示式/gettext,暫時不需要,先去掉

//cppflags/ldflags 是確保能找到 arm 版的 termcap庫

:–build=編譯該軟體所使用的平台、–host=該軟體將執行的平台、

--target=該軟體所處理的目標平台 ldflags代表gdb鏈結所依賴的庫,當需要依賴多哥庫時我們可以使用命令:ldflags="-l/path1 -l/path2 -l/path3" cppflags是用的是包含的標頭檔案。

在執行完成上面的操作後會生成,bin、lib、share的檔案將其移植在arm開發板上。然後就可以執行了。但是我在將此檔案移植到arm板上的時候發現沒執行的時候發現缺少libz.1.so的庫,因此需要libz的庫編譯移植在arm開發板中的lib中就可以了。或者執行前export ld_library=「」路徑」即可。

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.1.22

./configure --prefix=/hme/zlib

make

make

install

注:修改makefile檔案中的cc=arm-none-linux-gnueabi-gcc ,ldshared=arm-none-linux-gnueabi-gcc後再執行make 等命令將生成的lib檔案移植在板卡的/lib目中

交叉編譯GDB

gdb是一款強大的除錯工具,不多介紹了 解壓檔案tar xf gdb 7.9.tar.gz配置編譯 編寫編譯指令碼 bin bash configure cc opt mipsel gcc472 glibc216 mips32 bin mipsel linux gcc enable static c...

linux的系統移植 交叉編譯工具集

1.交叉編譯工具集 qquad 在我們安裝交叉工具集時,不僅安裝了arm linux gnueabi gcc,還安裝了很多任務具,它們共同構成交叉編譯工具集。arm linux gnueabi addr2line arm linux gnueabi gcov tool arm linux gnuea...

madplay移植 交叉編譯

移植madplay 需要如下檔案 madplay 0.15.2b.tar.gz libmad 0.15.1b.tar.gz libid3tag 0.15.1b.tar.gz 和zlib 1.2.3.tar.gz。zlib 1.1.4.tar.gz zlib 1.2.3.tar.gz類似 1 配置編譯...