|  | |
| 嵌入式交叉編譯過程詳解 | |
| 嵌入式軟件開發所采用的編譯為交叉編譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執行的代碼。因此,不同的CPU需要有相應的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯稱不同的CPU對應語言。要注意的是,編譯器本身也是程序,也要在與之對應的某一個CPU平臺上運行。嵌入式系統交叉編譯環境如圖1-1所示。(擴展閱讀:搭建交叉編譯環境) 
 這里一般(ban)把進行(xing)交叉編譯(yi)的(de)(de)主機稱為宿(su)(su)主機,也就是(shi)普通的(de)(de)通用計(ji)算(suan)(suan)機,而把程序實際的(de)(de)運行(xing)環(huan)境(jing)(jing)稱為目標機,也就是(shi)嵌(qian)入(ru)式(shi)系(xi)(xi)統環(huan)境(jing)(jing)。由于(yu)一般(ban)通用計(ji)算(suan)(suan)機擁(yong)有(you)非常豐富的(de)(de)系(xi)(xi)統資源(yuan)、使用方便的(de)(de)集成(cheng)開發(fa)環(huan)境(jing)(jing)和調試工具等,而嵌(qian)入(ru)式(shi)系(xi)(xi)統的(de)(de)系(xi)(xi)統資源(yuan)非常緊缺,沒有(you)相關的(de)(de)編譯(yi)工具,因此,嵌(qian)入(ru)式(shi)系(xi)(xi)統的(de)(de)開發(fa)需要借(jie)助宿(su)(su)主機(通用計(ji)算(suan)(suan)機)來編譯(yi)出目標機的(de)(de)可執行(xing)代碼。   由于(yu)編譯(yi)的(de)過程(cheng)包(bao)括編譯(yi)、鏈接(jie)等(deng)幾個階段,因此,嵌入式的(de)交(jiao)(jiao)叉(cha)編譯(yi)也包(bao)括交(jiao)(jiao)叉(cha)編譯(yi)、交(jiao)(jiao)叉(cha)鏈接(jie)等(deng)過程(cheng),通(tong)常ARM的(de)交(jiao)(jiao)叉(cha)編譯(yi)器(qi)(qi)為arm-elf-gcc,交(jiao)(jiao)叉(cha)鏈接(jie)器(qi)(qi)為arm-elf-ld,交(jiao)(jiao)叉(cha)編譯(yi)過程(cheng)如圖1-2所示。 
 熱(re)點鏈接: 
          1、嵌入式培訓資料:Qt/Embedded編程入門 |