日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

交叉編譯cross compiling

系統 1919 0

什么是交叉編譯呢,簡單地說,就是在一個平臺上生成另一個平臺上的可執行代碼。這里需要注意的是所謂
平臺,實際上包含兩個概念:體系結構( Architecture )、操作系統( Operating System )。同一個體系結
構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。

?

嵌入式系統往往資源都是很有限的,如果其資源和我們平常用的桌面計算機(在嵌入式系統開發中我們稱之為主機, host machine )一樣,那我想可能就不存在交叉編譯這么一說了。最為典型的是,嵌入式系統的內存往往是幾兆字節,且只有 FLASH 而沒有硬盤這種大容量存儲設備。也就是說在這種資源有限的環境中,我們 不可能 將我們的開發工具安裝在嵌入式設備中(在嵌入式系統開發中我們稱之為目標機, target machine ),然后象我們平時做桌面開發那樣,在上面進行編碼、調試最后發布軟件。

?

現實情況是,嵌入式系統的開發是在主機上進行的,那就存在一個問題:當我們的目標機處理器與主機的處理器不同時(比如目標機是 ARM 處理器,而主機是 x86 處理器),在這種請況下,如何保證在主機上編譯的程序能在目標機上運行呢? 答案在于編譯器上 !我們說嵌入式開發用的編譯器與我們平時做桌面開發的編譯器是不同的,在平時,我們的編譯器是運行在什么處理器上,其編譯出來的可執行程序也是運行在同樣的處理器上的。實際上, 我們可以讓一個編譯器運行在 x86 主機上,卻編譯出可以在 ARM 上運行的可執行程序 ,這種編譯器就是交叉編譯器( cross compiler ),而采用交叉編譯器進行編譯就是指交叉編譯( cross compiling ),而交叉編譯器相關的環境就是指交叉編譯環境( cross compiling environment )。

?

舉一個例子,這個例子就是 VxWorks 一種嵌入式實時操作系統 )的 Workbench (在早期版本中是 Tornado 協同仿真環境 )。這是一個 VxWorks 的開發環境,其除了采用 Eclipse 作為 IDE 外,后面采用的是 GNU GCC 編譯器進行程序編譯。有人可能要問, GCC 能運行在 Windows 上?其實, GCC 不是直接運行在 Windows 上的, Workbench 采用 Cygwin windows 平臺上運行的 unix 模擬環境 )作為其編譯器的支撐環境,也就是說 GCC 及其 binutils 是運行在 Cygwin 上的。采用 Workbench 我們可以開發幾乎所有主流處理器的嵌入式產品,而所有的工作都在 Windows 上完成的!

至此,相信你對交叉編譯、交叉編譯器和交叉編譯環境有了很好的了解了。?

?

?

交叉編譯cross compiling


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 平昌县| 耒阳市| 永仁县| 蓬莱市| 红河县| 固镇县| 方城县| 安顺市| 长寿区| 广东省| 灌南县| 沁水县| 顺义区| 永善县| 黄冈市| 奈曼旗| 贵州省| 常熟市| 红原县| 东光县| 潜山县| 昂仁县| 磐安县| 河南省| 甘孜县| 高雄县| 仁寿县| 克拉玛依市| 张家港市| 常宁市| 栾川县| 平远县| 伊川县| 海城市| 寻甸| 府谷县| 永州市| 宣城市| 禄丰县| 灵宝市| 呼图壁县|