原文:
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...