6SE6430-2AD27-5CA0 |
![]() |
價格: 元(人民幣) | 產地:6SE6430-2AD27-5CA0 |
最少起訂量:1個 | 發貨地:6SE6430-2AD27-5CA0 | |
上架時間:2022-01-04 17:13:07 | 瀏覽量:90 | |
廈門光沃自動化設備有限公司
![]() |
||
經營模式:經銷商 | 公司類型:其他有限責任公司 | |
所屬行業:PLC控制系統 | 主要客戶:全國市場 | |
![]() ![]() |
聯系人:吳 (先生) | 手機:18030229050 |
電話: |
傳真: |
郵箱:1878187406@qq.com | 地址:廈門市海滄區滄湖東一里海景奧斯卡 |
6SE6430-2AD27-5CA0 6SE6430-2AD27-5CA0 自己制作交叉編譯器
早期(2009年以前)我們在做嵌入式系統開發時,第一件事就是自己制作交叉編譯器。當時做交叉編譯器 需要自己下載gcc、glibc、binutils等相關工具的源碼,然后一個一個源碼編譯安裝。制作交叉編譯器的 過程中最痛苦的莫過于各個軟件之間的版本依賴關系,如gcc 4.6.2 依賴 glibc 2.13,如果你選定 gcc 4.7 則可能編譯制作失敗,然后再嘗試一個新的版本重新編譯,直至找到一個合適的版本為止。
后來為了方便交叉編譯器的制作,有很多組織或個人開始編寫這些制作交叉編譯器的腳本或框架,并測 試解決這些軟件版本之間的依賴關系。當時最知名的莫過于基于 glibc 的 crosstool 和 基于 uclibc 的 buildroot 了。在開始講解如何制作交叉編譯器之前,我們首先來了解一下 C運行庫。
1.嵌入式C運行庫
1.1glibc庫 glibc是gnu發布的libc庫,也即c運行庫。glibc是linux 系統中層的api(應用程序開發接口),幾乎其它任何的運行庫都會倚賴于glibc。glibc除了封裝linux操作系統所提供的系統服務外,它本身也提供了 許多其它一些必要功能服務的實現,主要的如下: string,字符串處理 signal,信號處理 dlfcn,管理共享庫的動態加載 direct,文件目錄操作 elf,共享庫的動態加載器,也即interpreter iconv,不同字符集的編碼轉換 inet,socket接口的實現 intl,國際化,也即gettext的實現 io linuxthreads locale,本地化 login,虛擬終端設備的管理,及系統的安全訪問 malloc,動態內存的分配與管理 nis stdlib,其它基本功能
gcc 是編譯器,基本上 Linux 下所有的程序(包括內核)都是 gcc 編譯的,libc 當然也是。gcc 和 libc 是互相依賴的兩個軟件,它們合作的方式類似 Linux 系統的 "自舉"。先在一個可以運行的帶有老 libc 和 gcc 的系統上,用老 gcc 編譯出一個新版本的 gcc + 老 libc,再用這個新 gcc 編譯出一個新 gcc + 新 libc,再用這套新的組合編譯整個新系統。
1.2 uClibc庫 PC上常用的標準庫glibc是一個非常寵大而完整的庫,但早期對于嵌入式系統來說,由于Flash和RAM的 存儲空間有線,其體積顯得過于大了一些。uClibc的出現就是為了解決這個問題,uClibc盡可能的兼容 Glibc,大多數應用程序可以在很小或完全不修改的情況下就可能使用uClibc替代glibc。通過uClibc來代 替Glibc,可以在不改變應用程序功能的前提下,大大減少發布文件的大小,無論應用程序以靜態鏈接來 編譯,還是以動態鏈接形式編譯。
6SE6430-2AD27-5CA0 |
版權聲明:以上所展示的信息由會員自行提供,內容的真實性、準確性和合法性由發布會員負責。機電之家對此不承擔任何責任。 友情提醒:為規避購買風險,建議您在購買相關產品前務必確認供應商資質及產品質量。 |
機電之家網 - 機電行業權威網絡宣傳媒體
關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 會員助手 | 免費鏈接Copyright 2025 jdzj.com All Rights Reserved??技術支持:機電之家 服務熱線:0571-87774297
網站經營許可證:浙B2-20080178