zoukankan      html  css  js  c++  java
  • ubuntu18.04 编译ok6410需要的gdb 和gdbserver 过程中参考的资料 --disable-werror[转载的]

     

    http://blog.chinaunix.net/uid-21977330-id-3761022.html

    1. 安装依赖文件

    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 不能够工作
     

    2. 编译gdb for arm

     

    # It's actually quite straightforward:
    wget http://ftp.gnu.org/gnu/gdb/gdb-7.0.1a.tar.bz2
    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,然后设置下环境变量,否则找不到编译器

  • 相关阅读:
    manacher(马拉车)算法详解+例题一道【bzoj3790】【神奇项链】
    【bzoj2160】【啦啦队排练】manacher(马拉车)+差分+快速幂
    file.seek()
    python strip() 函数探究
    vscode配置python环境
    关于ubuntu16.04系统无法系统更新的解决
    汇率计算器
    pythno学习小结-替换python字典中的key值
    python学习小结-字典key,val互换
    python学习笔记(7)——集合(set)
  • 原文地址:https://www.cnblogs.com/eastgeneral/p/11484303.html
Copyright © 2011-2022 走看看