回覆列表
  • 1 # 使用者824832087851

    所謂的搭建交叉編譯環境,即安裝、配置交叉編譯工具鏈。

    在該環境下編譯出嵌入式Linux系統所需的作業系統、應用程式等,然後再上傳到目標機上。交叉編譯工具鏈是為了編譯、連結、處理和除錯跨平臺體系結構的程式程式碼。對於交叉開發的工具鏈來說,在檔名稱上加了一個字首,用來區別本地的工具鏈。例如,arm-linux-表示是對arm的交叉編譯工具鏈;arm-linux-gcc表示是使用gcc的編譯器。除了體系結構相關的編譯選項以外,其使用方法與Linux主機上的gcc相同,所以Linux程式設計技術對於嵌入式同樣適用。不過,並不是任何一個版本拿來都能用,各種軟體包往往存在版本匹配問題。例如,編譯核心時需要使用arm-linux-gcc-4.3.3版本的交叉編譯工具鏈,而使用arm-linux-gcc-3.4.1的交叉編譯工具鏈,則會導致編譯失敗。那麼gcc和arm-linux-gcc的區別是什麼呢?區別就是gcc是linux下的C語言編譯器,編譯出來的程式在本地執行,而arm-linux-gcc用來在linux下跨平臺的C語言編譯器,編譯出來的程式在目標機(如ARM平臺)上執行,嵌入式開發應使用嵌入式交叉編譯工具鏈。工具/原料 電腦系統:win7系統。虛擬機器系統:workstation6.5 。虛擬機器安裝的linux版本:fedora9.0。核心:linux2.6.25 。方法/步驟 1 我使用的交叉編譯工具鏈是arm-linux-gcc-4.4.3,把它放在linux系統的路徑是圖一 2 在linux系統的路徑/home/song/share下放了交叉編譯工具鏈arm-linux-gcc-4.4.3的壓縮包,另一個版本的不用。有的人可能會問到怎麼把這個壓縮包弄到虛擬機器的linux的系統的,我是透過samba服務從主機複製到虛擬機器的,這裡的share資料夾就是我samba伺服器的工作目錄,多了不說,這不是重點。然後透過命令mkdir embedded 建立一個arm-linux-gcc的安裝目錄,如圖二所示。當然安裝路徑和目錄名稱“embedded”可以依自己的喜好而定。步驟閱讀 然後透過命令將share資料夾下的arm-linux-gcc-4.4.3.tar.gz複製到這裡的embedded資料夾下, 當然這裡你也可以不進行這一步我這是為了方便以後管理,將arm-linux-gcc安裝到embedded資料夾下,方便以後尋找。然後使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz將embedded資料夾下的arm-linux-gcc-4.4.3.tar.gz解壓縮安裝到當前目錄下 執行完解壓縮命令,就已經將交叉編譯工具鏈arm-linux-gcc-4.4.3安裝到linux系統上了,這裡預設安裝到了圖六所示的路徑上。接下來配置系統環境變數,把交叉編譯工具鏈的路徑新增到環境變數PATH中去,這樣就可以在任何目錄下使用這些工具。vi /etc/profile 編輯profile檔案,新增環境變數。在profile中的位置處,新增圖八所示的紅線標註的一行,路徑就是圖六中的紅線標註的路徑後面加上/4.4.3/bin。圖八中的路徑一定是你自己的安裝路徑,可以使用pwd命令查詢一下那個bin目錄的路徑。新增完路徑後,儲存退出。接下來使用命令:source /etc/profile,是修改後的profile檔案生效,如圖九所示。然後,使用命令:arm-linux-gcc -v檢視當前交叉編譯鏈工具的版本資訊,如圖九中的紅線標註第③行所示。很明顯 可以看到,如果不執行第②步,則檢視版本資訊不成功。然後驗證交叉編譯工具鏈是否安裝成功並且可以使用,如圖九所示,隨便找一個目錄編輯一個hello原始碼。編輯好hello.c檔案後,儲存退出。然後使用交叉編譯器對hello.c進行編譯,並生成可執行檔案hello 這裡生成的hello檔案並不能像gcc編譯出來的檔案那樣直接使用“./hello”命令執行並顯示內容 因為它是一個二進位制檔案,只能下載到開發板上執行! 至此,搭建交叉編譯環境步驟結束。

  • 中秋節和大豐收的關聯?
  • 你們認同“離婚的男人是個寶,離婚的女人像根草”這句話嗎?