交叉編譯GDB到ARM板

2021-09-03 01:45:28 字數 2370 閱讀 6366

原文:

sudo apt-get install texinfo 

sudo apt-get install libncurses5-dev 

sudo apt-get install m4

sudo apt-get install flex 

sudo apt-get install bison

為了支援python指令碼擴充套件功能

apt-get install python-dev

確定xml support 是否使能,如果libexpat-dev被安裝是預設是能的,

如果不支援xml, openocd->gdb  memory map transfer 不能夠工作

# it's actually quite straightforward:

wget

tar jvxf gdb-7.2.tar.bz2

cd gdb-7.2

./configure --target=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi-  --prefix=/home/enzo 

其中:--target i指明目標系統型別

--prefix 指生成的可執行檔案安裝在哪個目錄

--program-prefix  指生成的可執行檔案的字首

make

幸運的話,會在--prefix指定的目錄下生成三個子目錄:bin、lib、share,我們需要的arm-none-linux-gnueabi-gdb就在其中的bin目錄下。

編譯過程中會出現:一些警告型錯誤,即編譯器將警告預設為錯誤錯哩,導致編譯通不過,這時可以在 configure選項後面加:--disable-werror ,即:

./configure --target=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi-  --prefix=/home/enzo --disable-werror

(編譯python選項出錯,直接去掉了。更多選項可以通過 .configure --help  檢視)

進入gdb目錄,對生成的elf檔案進行strip,不然又12m左右

strip gdb -o arm-none-linux-gnueabi-gdb

裁剪後大小

-rwxr-xr-x 1 root root 2.7m  6月  9 21:14 arm-none-linux-gnueabi-gdb

拷貝arm-none-linux-gnueabi-gdb 到目標位置即可

3. 編譯gdbserver

cd gdb/gdbservver

cc=arm-hisiv100nptl-linux-gcc ./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux

這裡的--host指定了生成可執行檔案執行的平台和系統:執行於arm平台的linux系統

make

檢查生成的gdbserver

$ file gdbserver

gdbserver: elf 32-bit lsb executable, arm, version 1 (sysv), dynamically linked (uses shared libs), not stripped

4. 去除符號資訊

$ arm-hisiv100nptl-linux-strip gdbserver -o gdbserver

enzo@debian:~/downloads/gdb-7.3.1/gdb/gdbserver$ file gdbserver

gdbserver: elf 32-bit lsb executable, arm, version 1 (sysv), dynamically linked (uses shared libs), stripped

可能出現的錯誤:

xml-builtin.o: could not read symbols: file in wrong format

出現此錯誤原因: 沒有指定交叉編譯器

./configure --host=arm-hisiv100nptl-linux --target=arm-hisiv100nptl-linux 

自己的開發板,

./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi --program-prefix=arm-none-linux-gnueabi- --prefix=/home/ljl/gdb

make install前先sudo -i,然後設定下環境變數,否則找不到編譯器

交叉編譯libparted到arm

libparted版本為parted 3.0,libuuid版本為libuuid.1.0.3 1.交叉編譯libuud 編譯配置選項 configure host arm none linux gnueabi prefix usr local uuid arm 注 安裝路徑為本人自行建立並指定,編譯...

python 交叉編譯到ARM

1.交叉編譯需要,先編譯pc版python 再編譯arm出來,用於生成語法解析器 configure make parser pgen2.配置 和編譯 export cc arm openwrt linux gcc configure host arm openwrt linux prefix ho...

交叉編譯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...