OpenWRT文章翻譯之(一)—-OpenWRT Buildroot簡介

來源:互聯網
上載者:User
OpenWRT文章翻譯之(一)----OpenWRT Buildroot簡介原文地址:http://wiki.openwrt.org/about/toolchainBuildroot簡介話說OpenWRT Buildroot 之前,先說一下Buildroot是什麼東西吧。Buildroot實際上是一個編譯的指令碼,它包括一組Makefiles檔案和補丁檔案,主要用於簡單系統或嵌入式系統的編譯,支援多種CPU的架構,其中包括x86、ARM、MIPS和PowerPC等。它可以產生交叉編譯的工具鏈,檔案系統,核心鏡像和bootloader鏡像等。相關的內容可以到Buildroot的首頁去查看http://www.buildroot.orgOpenWRT Buildroot簡介那麼OpenWRT Buildroot又是什麼玩兒呢?實際上也是一個Buildroot,只是它是專門為編譯OpenWRT而移植過來的編譯OpenWRT系統的指令碼,而至於為什麼它叫OpenWRT Buildroot,那是因為OpenWRT移植過來的時候,做了大量的修改!OpenWRT Buildroot的主要任務就是產生交叉編譯鏈和檔案系統。交叉編譯工具鏈交叉編譯鏈是一套交叉編譯工具,它可以為你的目標系統編譯原始碼檔案。那麼為什麼叫交叉編譯工具鏈呢?因為大部分嵌入式或是微型的小系統,由於CPU或是Flash的限制,或是避免浪費,都不會把編譯工具鏈放到系統裡面去,當然X86的例外,嘿嘿。那My Code怎麼才能編譯到嵌入式系統裡面呢?我們通常都是在X86通用Linux系統上面使用特定的工具,編譯產生目標系統可以執行的代碼,再上傳到目標系統。而這個編譯平台和目標平台不同的特定的編譯工具鏈即是前面所講的交叉編譯工具鏈。一個交叉編譯工具鏈主要包括三部分:編譯器(gcc),二進位工具binutils(彙編器、連結器等)和標準的C函數庫(GNU Libc或uClibc)。它主要有兩個特徵:    1.可以運行在X86通用CPU架構之上;    2.可以編譯產生特定CPU架構(ARM,MIPS等)的代碼。OpenWRT交叉編譯工具鏈使用的標準C函數庫是uClibc,一個專為嵌入系統設計的小型標準C函數庫。所以即便的是使用ALIX.2D2的板子,這個也是X86的CPU,使用OpenWRT系統,你在X86架構Linux上編譯的東西,也無法在OpenWRT上面運行。好吧,我承認有點偏題了。。。OpenWRT Buildroot的真實身份有同鞋講,網上有一票gcc,和binutils,uClibc的原始碼,我不能自己下載,然後自己編譯嗎?答案是可以滴,但是~~如果你不怕麻煩的話(原文翻譯,老外真是有水平啊哈,瞭解大家都怕麻煩的特點,然後拿出來放大)。前面我們提過OpenWRT Buildroot是許多Makefiles檔案和補丁檔案的集合,它會為我們自動設定這個原始碼,為每個版本打上已知的補丁,最後產生 確實可用的交叉編譯工具鏈。除此之外,它還可以產生系統,這個篇幅比例不太合適啊,OpenWRT Buildroot兩個主要任務的其中一個怎麼介紹這麼少呢?沒有辦法,原文就是醬紫的。。。最後表達一下對OpenWRT Buildroot的景仰之情,雖然OpenWRT Buildroot主要是面向開發都的,但是一般沒有專業技能基礎的終端使用者也可以使用它編譯產生你自己的系統韌體。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.