在MACOS上實現交叉編譯

      在嵌入式開發過程當中,設備的存儲空間和運算能力一般會比較低,這時候,好比要編譯一個linux的內核,嵌入式設備就不能勝任了,因此,實現交叉編譯仍是很必要的。經過交叉編譯,咱們就可以在咱們的pc上編譯出可以在嵌入式設備上使用的可執行程序。html

       下面,我將一步步講解如何在MAC OS上實現樹莓派(arm)的交叉編譯。linux

 

一。新建一個磁盤映像git

       MAC OS的文件系統默認是大小寫不敏感的,而交叉編譯工具鏈是基於大小寫敏感的文件系統的,因此咱們不能直接把工具鏈安裝在原來的文件系統中,而是須要新建一個大小寫敏感的磁盤印象用於安裝工具鏈。github

 

       實現這一功能並不難,使用系統自帶的磁盤工具(disk utility在MACOS上實現交叉編譯 - hyice - IT小碼農)就能夠實現了。打開磁盤工具,而後 文件>新建>空白磁盤映像,而後在彈出窗口中設置名稱爲arm-x(便於後續操做),大小至少爲500M,格式爲Mac OS擴展(區分大小寫,日誌式)的映像(以下圖)。  ssh

        在MACOS上實現交叉編譯 - hyice - IT小碼農 

 

 

 

二。下載已經編譯完的工具鏈工具

 

從下面的連接下載已經編譯完的arm GNU Linux 工具鏈:測試

https://github.com/downloads/UnhandledException/ARMx/ARMx-2009q3-67.tar.bz2日誌

 

若是你想本身一步步編譯,瞭解工具鏈中的具體元素的話,能夠看一下下面這篇文檔:component

https://github.com/UnhandledException/ARMx/wiki/Sourcery-G---Lite-for-ARM-GNU-Linux-(2009q3-67)-for-Mac-OS-Xserver

 

 

三。解壓工具鏈壓縮包到磁盤映像

 

在終端進入壓縮包所在的目錄,執行下面的指令便可:

(新建的磁盤映像默認是掛載的,若是沒有掛載的話請先手動掛載)

tar -zx -C /Volumes/arm-x/ --strip-components 1 -f ARMx-2009q3-67.tar.bz2

 

四。使用工具鏈

 

       如今已經可以直接使用工具鏈了,好比我寫了一個hello.c程序,如今能夠直接使用工具鏈對程序進行編譯。

        在終端執行:

         /Volumes/arm-x/bin/arm-none-linux-gnueabi-gcc hello.c -o hello

        就能夠得到一個名爲hello的可執行程序。這個程序在mac下是不能運行的,須要在arm處理器的設備上才能運行。

        在MACOS上實現交叉編譯 - hyice - IT小碼農 

      固然,若是你嫌輸入一大串路徑去調用arm-none-linux-gnueabi-gcc程序麻煩的話,能夠把/Volumes/arm-x/bin目錄添加到PATH裏去,這樣就可以像使用系統命令同樣使用了。(添加環境變量的方法不少,建議把路徑添加到~/.profile文件中去,具體操做百度一下你就知道)

 

 

五。把hello程序上傳到樹莓派上

 

      若是你本身知道怎麼把文件上傳到樹莓派上,那麼請直接上傳吧。若是不會,我在這裏提供兩種方法:

 

        1.使用sftp:這種方法無需另外設置,能夠直接把文件上傳到樹莓派,但每一次更改都須要從新上傳。

            步驟:

     sftp pi@192.168.1.5 (ip地址根據你的地址進行更改)

                     而後輸入密碼raspberry

                      put /本地文件路徑    /上傳到樹莓派上的目錄

   (例如:put /Users/icool/Desktop/hello . )

                    在MACOS上實現交叉編譯 - hyice - IT小碼農

      2.使用NFS:這種方法須要先進行配置,但配置好後使用十分方便。能夠將樹莓派上的文件直接映射到mac上,這樣在mac上修改便可,無需再上傳。

              具體步驟能夠參考這篇文檔:

     http://server.zdnet.com.cn/server/2007/0831/482007.shtml

 

 

 

 

六。在樹莓派上執行上傳的程序

 

ssh鏈接上樹莓派(或者任意方法,登錄上樹莓派便可)。

           而後進入hello程序所在目錄,執行:

./hello

結果以下:

在MACOS上實現交叉編譯 - hyice - IT小碼農

 

 

七。測試浮點程序

 

       經過上一步能夠發現交叉編譯獲得的hello,world程序能夠在樹莓派上正常運行,下面要檢驗一下浮點程序是否也能夠正常運行。

 

       先寫一個簡單的浮點程序:

      在MACOS上實現交叉編譯 - hyice - IT小碼農

       檢驗結果:

      在MACOS上實現交叉編譯 - hyice - IT小碼農

相關文章
相關標籤/搜索