在linux上安裝交叉編譯器

         什麼是交叉編譯:在計算機環境中運行的編譯程序,能編譯出在另外一種環境下運行的代碼,如在keil軟件編譯,在單片機上運行。這就是交叉編譯。

一.安裝標準的C開發環境,由於Linux安裝默認是不安裝的,所以需要先安裝一下(如果已經安裝好的話,就可以免去這一步了,我的就已經是安裝好的了):
  #sudo apt-get install gcc g++ libgcc1 libg++ make gdb

打開共享目錄/home/lishuai,將壓縮文件arm-linux-gcc-4.3.2.tgz複製到/home/lishuai下

二.解壓軟件包arm-linux-gcc-4.3.2.tgz.

  [root@localhost lishuai]#tar xzvf arm-linux-gcc4.3.2.tgz

   1.目錄4.3.2就是該交叉編譯器的目錄.從arm-linux-gcc-4.3.2.tgz解壓信息來看,該軟件包需要解壓在usr/local/arm下,而實際卻解壓到了共享目錄/home/lishuai下                              

   2.進入目錄usr/local/內,並沒有找到arm文件夾,所以需要新建一arm文件夾,再將目錄4.3.2移動到新建目錄usr/local/arm下.其中,4.3.2/bin就是arm-linux-gcc的可執行文件.
   [root@localhost local]#mv  /home/lishuai/usr/local/arm/4.3.2  ./      

   3.進入目錄/usr/local/arm/4.3.2/bin,可以看到不同類型的編譯器.但在ARM下經常用到是arm-linux-gcc.其實它也是一個gcc編譯器,與gcc使用方法一致,不過該編譯器是針對arm體系結構、Linux操作系統的編譯器.利用該編譯器就可以編譯出運行在ARM上的Linux操作系統下的應用程序.

  4.進入目錄/usr/local/arm/4.3.2/arm-none-linux-gnueabi.其中,lib目錄下存放的是庫文件,用戶編寫的應用程序在運行時就依賴於這些庫文件.

  5.此時還不能編譯源碼,系統一般會提示找不到命令arm-linux-gcc.這是環境變量在作祟.所以必須修改環境變量PATH.
   [root@localhost lishuai]#vi /etc/profile                           

   在"export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC"這一行的下面添加環境變量,
   輸入:export PATH=/usr/local/arm/4.3.2/bin:$PATH
   指定變量PATH爲交叉編譯器的路徑,目的是告訴操作系統可以到目錄/usr/local/arm/4.3.2/bin下查找可執行文件

      修改環境變量,把交叉編譯器的路徑加入到PATH。(有三種方法,強烈推薦使用方法一)
     方法一:修改/etc/bash.bashrc文件
                 #vim /etc/bash.bashrc
                 在最後加上:
                export PATH=$PATH:/usr/local/arm/3.4.1/bin
                export PATH
     方法二:修改/etc/profile文件:
                # vim /etc/profile
               增加路徑設置,在末尾添加如下,保存/etc/profile文件:
               export PATH=$PATH:/usr/local/arm/3.4.1/bin
    方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin
                  注:(這隻能在當前的終端下才是有效的!)

  6.[root@localhost lishuai#:source /etc/profile

    //使已修改的配置文件/etc/profile生效

   立即使新的環境變量生效,不用重啓電腦:
     對應方法一:#source /root/.bashrc
    對應方法二:# source /etc/profile

    檢查是否將路徑加入到PATH:
      # echo $PATH

  7.查看arm-linux-gcc編譯器的版本

   [root@localhost lishuai]#arm-linux-gcc -v

8.編譯Hello World程序,測試交叉工具鏈
  寫下下面的Hello World程序,保存爲hello.c
    #include <stdio.h>
    int main()
    {
    printf("Hello World!/n");
       return 0;
    }
   
    執行下面的命令:
    # arm-linux-gcc -o hello hello.c

 

-------------------------------------------------------------

修改環境變量這一步修改/etc/profile文件

 

在path中添加arm-linux-gcc路徑

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/arm/3.4.1/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章