劇多
首頁
資訊
體育
娛樂
汽車
投資
財經
軍事
科技
數碼
科學
遊戲
歷史
健康
政治
影視
旅遊
育兒
美食
時尚
房產
農業
社會
文化
教育
技術
美文
情感
故事
家居
職場
自然
闢謠
心理
攝影
漫畫
生活
其它
Club
Tips
熱門話題
搜尋
註冊
登入
首頁
>
Club
>
2021-02-15 02:39
如何分步編譯和安裝交叉編譯環境所需要的庫和原始碼?
7
回覆列表
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”命令執行並顯示內容 因為它是一個二進位制檔案,只能下載到開發板上執行! 至此,搭建交叉編譯環境步驟結束。
發表回復
∧
中秋節和大豐收的關聯?
∨
你們認同“離婚的男人是個寶,離婚的女人像根草”這句話嗎?
熱門排行
小小伊澤瑞爾跟小小傑斯哪個好?
光與夜之戀怎麼重置人物等級?
電動風車原理講解?
貓棒怎麼做?
瑞文智力測試135分靠譜嗎?
sp工具是什麼意思?
汽車輪轂是易損件嗎?
Excelle800x輪胎尺寸?
海拔5200米氧氣含量多少?
室外消火栓的水源來自哪裡?
所謂的搭建交叉編譯環境,即安裝、配置交叉編譯工具鏈。
在該環境下編譯出嵌入式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”命令執行並顯示內容 因為它是一個二進位制檔案,只能下載到開發板上執行! 至此,搭建交叉編譯環境步驟結束。