gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

什么是linux交叉編譯

在linux中,交叉編譯是指在一個平臺上生成另一個平臺上的可執行代碼,即編譯源代碼的平臺和執行源代碼編譯后程序的平臺是兩個不同的平臺。使用交叉編譯的原因:1、目標系統沒有能力在其上進行本地編譯;2、有能力進行源代碼編譯的平臺與目標平臺不同。

什么是linux交叉編譯

本教程操作環境:linux5.9.8系統、Dell G3電腦。

交叉編譯

所謂"交叉編譯(Cross_Compile)",是指編譯源代碼的平臺和執行源代碼編譯后程序的平臺是兩個不同的平臺。比如,在Intel x86架構/Linux(Ubuntu)平臺下、使用交叉編譯工具鏈生成的可執行文件,在ARM架構/Linux下運行。

簡單地說,就是在一個平臺上生成另一個平臺上的 可執行代碼。同一個 體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。

交叉編譯是相對復雜的,必須考慮如下幾個問題:

  • CPU架構:比如ARM,x86,MIPS等等;

  • 字節序:大端(big-endian)和小端(little-endian);

  • 浮點數的支持;

  • 應用程序二進制接口(Application Binary Interface,ABI);

為什么要使用交叉編譯呢?主要有兩個原因:

  • 交叉編譯的目標系統一般都是內存較小、顯示設備簡陋甚至沒有,沒有能力在其上進行本地編譯;

  • 有能力進行源代碼編譯的平臺CPU架構或操作系統與目標平臺不同;

交叉編譯工具鏈是進行交叉編譯的必不可少的工具,是嵌入式開發人員必須熟練掌握的技能。

為什么交叉編譯很難?

便攜式本機編譯很困難。

大多數程序是在 x86 硬件上開發的,在本地編譯的。交叉編譯會遇到兩種類型的問題:程序本身的問題和構建系統的問題。

第一類問題會影響所有非 x86 目標,包括本機和交叉構建。大多數程序對運行的機器類型做出假設,必須與相關平臺匹配,否則程序將無法運行。常見的假設包括:

  • Word size – 將指針復制到 int 可能會在 64 位平臺上丟失數據,通過乘以 4 而不是 sizeof(long) ,確定 malloc 的大小不好。整數溢出導致細微安全漏洞,ala“if (x+y < size) memset(src+x,0,y);”,當 x=1000 時,在 32 位硬件上產生 4 GB 的 memset y=0xFFFFFFF0…

  • Endianness – 不同的系統用不同的方式在內部存儲二進制數據,從磁盤或網絡中,讀取 int 或 float 數據可能需要轉換。

  • Alignment – 某些平臺(例如 arm)只能從 4 字節的偶數倍的地址,讀取或寫入整數,否則出現段錯誤。處理任意alignment的處理,未alignment的數據都較慢,編譯器通常會填充結構alignment變量。將結構視為可以發送到磁盤或通過網絡發送的數據塊,需要額外的工作確保一致的表示。

  • 默認簽名- “char”數據類型,默認為有符號或無符號,因平臺而異(從編譯器到編譯器),導致一些非常令人驚訝的錯誤。簡單解決方法是提供一個編譯器參數,如“-funsigned-char”,強制默認值為已知值。

  • NOMMU – 如果目標平臺沒有內存管理單元,需要更改幾項內容。需要 vfork(),不是 fork(),只有某些類型的 mmap() 工作(共享或只讀,但不能在寫入時復制),堆棧不會動態增長。

大多數包的目標是在本地編譯時可移植,至少會接受補丁,修復提交到適當的開發郵件列表的任何上述問題(NOMMU 問題除外)。

然后是交叉編譯。

什么是linux交叉編譯

除了本機編譯的問題外,交叉編譯還有其自身的一系列問題:

  • 配置問題- 具有單獨配置步驟的包(標準 configure/make/make install 的“./configure”部分),通常會測試字節順序或頁面大小等內容,在本機編譯時可移植。交叉編譯時,這些值在主機系統和目標系統之間不同,在主機系統上運行測試,給出錯誤的答案。當目標沒有該軟件包或版本不兼容時,配置檢測主機上,是否存在軟件包支持。

  • HOSTCC vs TARGETCC -構建過程需要編譯在主機系統上運行,如上述配置測試,或生成代碼的程序(如創建 .h 文件的 C 程序,在main構建期間 #included )。用目標編譯器替換主機編譯器,破壞在構建過程中運行庫。這樣的庫需要訪問主機和目標編譯器,需要說明何時使用。

  • 工具鏈泄漏- 配置不當的交叉編譯工具鏈,將主機系統的一些內容泄漏到已編譯的程序中,導致通常易于檢測,但難以診斷和糾正的故障。工具鏈可能 #include 錯誤的頭文件,或在鏈接時搜索錯誤的庫路徑。共享庫通常依賴于其它共享庫,可能會潛入對主機系統的意外鏈接時引用。

  • 庫- 動態鏈接的程序必須在編譯時,訪問適當的共享庫。目標系統的共享庫,需要添加到交叉編譯工具鏈中,以便程序可以鏈接到。

  • 測試- 在本機構建上,開發系統提供了方便的測試環境。交叉編譯時,確認“hello world”構建成功,可能需要(至少)配置引導加載程序,內核,根文件系統和共享庫。

什么是linux交叉編譯

  • 腳注 1:計算機類型之間最顯著的區別是執行程序的處理器,其它差異包括庫 ABI(例如 glibc 與 uClibc),具有可配置字節序的機器(arm 與 armeb),或不同模式的機器,可以運行 32 位和 64 位代碼(例如 x86 上的 x86-64)。

  • 腳注 2:在構建編譯器時,第三種類型稱為“加拿大交叉”,一種不在主機系統上運行的交叉編譯器。加拿大交叉構建了一個編譯器,該編譯器在一個目標平臺上運行,另一臺目標機器生成代碼。首先創建從主機到第一個目標的臨時交叉編譯器,作為第二個目標構建另一個交叉編譯器構建這樣的外部編譯器。第一個交叉編譯器的目標成為運行新編譯器的主機,第二個目標是新編譯器生成輸出的平臺。這種技術通常用于為目標平臺交叉編譯新的本機編譯器。

  • 腳注 3:現代桌面系統足夠快,模擬目標在模擬器下進行本地編譯,實際上是一種可行的策略。比交叉編譯慢得多,需要為目標查找或生成本機構建環境(無論如何都必須設置交叉編譯器),可能會因模擬器和要部署的真實硬件之間的差異崩潰。

  • 腳注 4:交叉編譯工具鏈傾向于為其實用程序的名稱加上前綴,ala “armv5l-linux-gcc”。如果簡單地稱為“gcc”,主機和本機編譯器就不能同時在 $PATH 中。

什么是linux交叉編譯

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日韩av一二三四| 久久成年人网站| 青青草原国产免费| 在线视频日韩一区 | 熟女熟妇伦久久影院毛片一区二区| 男人日女人视频网站| 免费看毛片的网址| 欧美日韩成人免费视频| 久久国产乱子伦免费精品| 成人在线播放网址| 欧美一级中文字幕| av日韩一区二区三区| 成人午夜视频在线观看免费| 国产爆乳无码一区二区麻豆| 成年人三级视频| 国产原创中文在线观看 | 五月天色婷婷综合| 九一精品在线观看| av无码久久久久久不卡网站| 国产精品成人久久电影| 欧美精品久久96人妻无码| 久草福利视频在线| 激情 小说 亚洲 图片: 伦| 色91精品久久久久久久久| 激情五月六月婷婷| 老头吃奶性行交视频| 九九九久久久久久久| 僵尸世界大战2 在线播放| 天堂网在线免费观看| 日韩中字在线观看| 亚洲啊啊啊啊啊| 亚洲一区二区在线视频观看| 男人天堂av片| 一本—道久久a久久精品蜜桃| 日韩欧美国产综合在线| 想看黄色一级片| 一级在线免费视频| 日本www在线播放| 日本在线xxx| 五月六月丁香婷婷| 大胆欧美熟妇xx| av在线免费观看国产| 欧美少妇一区二区三区| 亚洲无在线观看| 四虎精品欧美一区二区免费| 亚洲第一成肉网| 青青视频免费在线观看| 欧美xxxx吸乳| 五月丁香综合缴情六月小说| 妞干网在线观看视频| 欧美精品自拍视频| 久久久久久久久久久久91| 欧洲熟妇精品视频| 菠萝蜜视频在线观看入口| 天天综合成人网| 警花观音坐莲激情销魂小说| 色综合五月婷婷| 黄页网站大全在线观看| 午夜免费福利视频在线观看| 亚洲免费av网| 美女黄色片视频| 国产 欧美 日韩 一区| 日本黄色播放器| 丁香啪啪综合成人亚洲| 樱花草www在线| 少妇网站在线观看| 国产美女作爱全过程免费视频| www.av中文字幕| 国产精品视频一二三四区| 日韩中文字幕二区| 人妻精品无码一区二区三区 | 亚洲综合激情视频| 久久久久久久中文| 全黄性性激高免费视频| 男同互操gay射视频在线看| 日本免费色视频| 国产精品自在自线| 三年中国中文在线观看免费播放| 波多野结衣天堂| 日韩av播放器| 麻豆md0077饥渴少妇| 成人免费视频91| 四虎永久在线精品无码视频| 18禁免费无码无遮挡不卡网站| 黄页网站大全在线观看| 青青草原av在线播放| 亚洲视频在线观看一区二区三区| av观看免费在线| 手机版av在线| 欧美中日韩在线| 男人操女人逼免费视频| 性生活免费在线观看| 996这里只有精品| 三级一区二区三区| 国产精品333| 青青青在线观看视频| 996这里只有精品| 久久精品网站视频| 日本黄色片一级片| 亚洲人成色77777| 成年人网站av| 成人在线免费高清视频| 黄色av网址在线播放| 免费在线黄网站| 日韩av中文字幕第一页| 蜜桃视频成人在线观看| 欧美,日韩,国产在线| 欧美一级爱爱视频| 国产又黄又爽免费视频| 成人在线观看黄| 无码aⅴ精品一区二区三区浪潮 | 欧美乱做爰xxxⅹ久久久| 欧洲熟妇精品视频| 成人污网站在线观看| 日韩av加勒比| 91aaa精品| 国产美女三级视频| 日韩av黄色网址| 天天色综合社区| 成年人免费观看的视频| 99久久久无码国产精品性色戒| 国产视频九色蝌蚪| jizzjizzxxxx| 污污视频在线免费| 大西瓜av在线| 最新天堂中文在线| 久色视频在线播放| 涩多多在线观看| 欧美日韩二三区| 中国一级黄色录像| 69久久久久久| 青青在线视频免费| 中文字幕 91| 日本男人操女人| 黄色免费观看视频网站| 国产精品88久久久久久妇女| 国产又黄又猛视频| 蜜桃传媒一区二区三区| 国产精品波多野结衣| 亚洲免费成人在线视频| 日韩手机在线观看视频| 国产在线青青草| 男女爽爽爽视频| caopor在线视频| 久久久久免费精品| 亚洲 自拍 另类小说综合图区| 免费观看国产视频在线| 午夜啪啪免费视频| 国产精品igao网网址不卡| 国产精品亚洲天堂| 色爽爽爽爽爽爽爽爽| 激情图片qvod| 亚洲 欧美 日韩 国产综合 在线| 免费av手机在线观看| 成人在线观看黄| a级黄色片网站| 国产精品久久久久7777| 免费在线观看的毛片| 日本免费黄色小视频| 欧美一级在线看| 91丝袜超薄交口足| 国产爆乳无码一区二区麻豆 | 日韩视频在线免费播放| av在线免费观看国产| 日本国产中文字幕| 日韩视频在线免费播放| 国产免费毛卡片| 久久久久久av无码免费网站下载| www.国产视频.com| 蜜臀av色欲a片无码精品一区| 色播五月激情五月| 91视频免费版污| 成人一区二区三| 亚洲熟妇av一区二区三区| 天天色综合天天色| 亚洲人精品午夜射精日韩 | 久久精品无码中文字幕| 手机在线观看日韩av| 麻豆三级在线观看| 97超碰成人在线| 9色porny| 18禁男女爽爽爽午夜网站免费| 天堂а√在线中文在线| a级片一区二区| 91网址在线播放| 人妻无码久久一区二区三区免费| 日本a在线免费观看| 一道本在线免费视频| 91制片厂毛片| 国产免费黄色小视频| 亚洲精品一二三四五区| 日日夜夜精品视频免费观看| 日韩精品视频网址| 成年人视频在线免费| 中文字幕av导航| 欧美深夜福利视频| 国产主播中文字幕| 日本高清免费在线视频| 国产欧美日韩网站| 国产大片一区二区三区|