所謂的搭建交叉編譯環(huán)境,即安裝薇溃、配置交叉編譯工具鏈菌赖。在該環(huán)境下編譯出嵌入式Linux系統(tǒng)所需的操作系統(tǒng)、應(yīng)用程序等沐序,然后再上傳到目標(biāo)機(jī)上琉用。
交叉編譯工具鏈?zhǔn)菫榱司幾g、鏈接策幼、處理和調(diào)試跨平臺(tái)體系結(jié)構(gòu)的程序代碼邑时。對(duì)于交叉開發(fā)的工具鏈來說,在文件名稱上加了一個(gè)前綴特姐,用來區(qū)別本地的工具鏈晶丘。例如,arm-linux-表示是對(duì)arm的交叉編譯工具鏈唐含;arm-linux-gcc表示是使用gcc的編譯器浅浮。除了體系結(jié)構(gòu)相關(guān)的編譯選項(xiàng)以外,其使用方法與Linux主機(jī)上的gcc相同捷枯,所以Linux編程技術(shù)對(duì)于嵌入式同樣適用滚秩。不過,并不是任何一個(gè)版本拿來都能用淮捆,各種軟件包往往存在版本匹配問題郁油。例如,編譯內(nèi)核時(shí)需要使用arm-linux-gcc-4.3.3版本的交叉編譯工具鏈争剿,而使用arm-linux-gcc-3.4.1的交叉編譯工具鏈已艰,則會(huì)導(dǎo)致編譯失敗痊末。
那么gcc和arm-linux-gcc的區(qū)別是什么呢蚕苇?區(qū)別就是gcc是linux下的C語(yǔ)言編譯器,編譯出來的程序在本地執(zhí)行凿叠,而arm-linux-gcc用來在linux下跨平臺(tái)的C語(yǔ)言編譯器涩笤,編譯出來的程序在目標(biāo)機(jī)(如ARM平臺(tái))上執(zhí)行嚼吞,嵌入式開發(fā)應(yīng)使用嵌入式交叉編譯工具鏈。