• x210交叉编译工具链的安装与验证


    我这里直接用的是s5pv210的板子,根据朱老师大讲堂的方法,根据官方提供的安装包来安装交叉编译工具链(也有用源码安装的,这个逼格较高,暂时按下不表)

    arm-2009q3.tar.bz2
    把这个安装包mv到/usr/local/目录下新建的arm目录下
    tar -jxvf /usr/local/arm/
    解压后,会在当前目录生成一个新的目录arm-2009q3
    进到里面的bin目录下,ls可以看到交叉编译链中的所有工具如下
    arm-none-linux-gnueabi-addr2line #调试时用于定位程序崩溃时的调用栈信息
    arm-none-linux-gnueabi-gprof #非常有用的调试工具
    arm-none-linux-gnueabi-ar #生成静态库的工具
    arm-none-linux-gnueabi-ld #链接器
    arm-none-linux-gnueabi-objdump #反汇编
    arm-none-linux-gnueabi-cpp #C预处理器
    arm-none-linux-gnueabi-gdb #非常有用的调试工具
    arm-none-linux-gnueabi-as #这个是干啥的
    arm-none-linux-gnueabi-nm #符号查看
    arm-none-linux-gnueabi-objcopy #objcopy被用来复制一个目标文件的内容到另一个文件中,
    可以使用不同于源文件的格式来输出目的文件,即可以进行格式转换(.elf转.bin)
    arm-none-linux-gnueabi-c++ #这个C++是干啥的?
    arm-none-linux-gnueabi-c++filt
    arm-none-linux-gnueabi-ranlib
    arm-none-linux-gnueabi-g++
    arm-none-linux-gnueabi-readelf
    arm-none-linux-gnueabi-gcc
    arm-none-linux-gnueabi-size
    arm-none-linux-gnueabi-gcc-4.4.1
    arm-none-linux-gnueabi-sprite
    arm-none-linux-gnueabi-gcov
    arm-none-linux-gnueabi-strings
    arm-none-linux-gnueabi-strip
    arm-none-linux-gnueabi-gdbtui

    如何验证一下是否安装成功呢,那就去执行
    ./arm-none-linux-gnueabi-gcc -v
    发现打印出来一堆消息,最后是
    gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 这就说明我们安装成功了

    然后我们来把这个目录添加到系统的环境变量
    vi ~/.bashrc
    然后在尾部添加
    export PATH=$PATH:/usr/local/arm/arm-2009q3/bin
    注意这个需要退出当前console再进入的时候才会有效
    然后是为这些工具创建符号链接
    有一个脚本,直接拷过去/usr/local/arm/arm-2009q3/bin执行就行
    =========================================================
    其实上述步骤完全可以用一个脚本来实现,为了以后搭建环境时省一些时间,我这里写了一个一键安装脚本envsetup.sh
    #!/bin/bash
    
    function create_link(){
        echo "creating soft link ..."
        sudo ln arm-none-linux-gnueabi-addr2line -s arm-linux-addr2line
        sudo ln arm-none-linux-gnueabi-ar -s arm-linux-ar
        sudo ln arm-none-linux-gnueabi-as -s arm-linux-as
        sudo ln arm-none-linux-gnueabi-c++ -s arm-linux-c++
        sudo ln arm-none-linux-gnueabi-c++filt -s arm-linux-c++filt
        sudo ln arm-none-linux-gnueabi-cpp -s arm-linux-cpp
        sudo ln arm-none-linux-gnueabi-g++ -s arm-linux-g++
        sudo ln arm-none-linux-gnueabi-gcc -s arm-linux-gcc
        sudo ln arm-none-linux-gnueabi-gcc-4.4.1 -s arm-linux-gcc-4.4.1
        sudo ln arm-none-linux-gnueabi-gcov -s arm-linux-gcov
        sudo ln arm-none-linux-gnueabi-gdb -s arm-linux-gdb
        sudo ln arm-none-linux-gnueabi-gdbtui -s arm-linux-gdbtui
        sudo ln arm-none-linux-gnueabi-gprof -s arm-linux-gprof
        sudo ln arm-none-linux-gnueabi-ld -s arm-linux-ld
        sudo ln arm-none-linux-gnueabi-nm -s arm-linux-nm
        sudo ln arm-none-linux-gnueabi-objcopy -s arm-linux-objcopy
        sudo ln arm-none-linux-gnueabi-objdump -s arm-linux-objdump
        sudo ln arm-none-linux-gnueabi-ranlib -s arm-linux-ranlib
        sudo ln arm-none-linux-gnueabi-readelf -s arm-linux-readelf
        sudo ln arm-none-linux-gnueabi-size -s arm-linux-size
        sudo ln arm-none-linux-gnueabi-sprite -s arm-linux-sprite
        sudo ln arm-none-linux-gnueabi-strings -s arm-linux-strings
        sudo ln arm-none-linux-gnueabi-strip -s arm-linux-strip
    }
    
    DIR=$(pwd)
    echo "--------------------------------------"
    echo "Before install make sure one thing that:"
    echo "your PC is x86 arch based machine and"
    echo "you want programs running on arm arch"
    echo "--------------------------------------"
    
    # judge whether the tool chain exists
    if [ ! -e arm-2009q3.tar.bz2 ]; then
        echo "arm-2009q3.tar.bz2 not found"
        return 1
    fi
    # mv to a default path
    if [ -e /usr/local/arm ]; then
        sudo cp arm-2009q3.tar.bz2 /usr/local/arm/arm-2009q3.tar.bz2
    else
        echo "mkdir /usr/local/arm"
        sudo mkdir /usr/local/arm
        sudo cp arm-2009q3.tar.bz2 /usr/local/arm/arm-2009q3.tar.bz2
    fi
    # unzip the arm-20093.tar.bz2
    cd  /usr/local/arm
    if [ ! -e arm-2009q3 ]; then
        echo "unzip the arm-20093.tar.bz2"
        sudo tar -jxf arm-2009q3.tar.bz2
    fi
    # new short name for these tools
    cd  /usr/local/arm/arm-2009q3/bin
    create_link
    echo "validating ..."
    ./arm-linux-gcc -v | grep "gcc version 4.4.1"
    if [ $? -eq 0 ]; then
        echo "validation ok!"    
    else
        echo "validation failed"
        # get back
        cd $DIR
        unset DIR
        return 1
    fi
    
    # add path to sys env
    sed -i '$a export PATH=$PATH:/usr/local/arm/arm-2009q3/bin' ~/.bashrc
    if [ $? -eq 0 ]; then
        echo "export to sys env ok!"
    else 
        echo "export to sys env failed"
    fi
    # get back
    cd $DIR
    unset DIR
    echo "arm-linux compile chain env set done!"

    使用的时候把压缩包和这个脚本放在同一个目录下,然后执行 . envsetup.sh即可

     
     
     
     
  • 相关阅读:
    fiddler强大功能用法(二)
    fidder强大功能用法(一)
    fidder使用
    postman
    bug的一生:如何体现测试专业度?
    Fiddler无法抓到https的解决方法
    Fiddler工具安装下载使用
    z-index
    position:absolute
    ajax跨域,json,jsonp
  • 原文地址:https://www.cnblogs.com/Arnold-Zhang/p/11291967.html
Copyright © 2020-2023  润新知