我的工作通常是從Internet開源。使用MIPSEL工具鏈進行交叉編譯並獲取二進制文件。我爲了交叉編譯代碼而苦苦掙扎。通常要交叉編譯任何源代碼包的步驟是什麼?我使用Linux平臺。例如,CC,LD和其他什麼? 每個源代碼都有不同的結構,我無法弄清楚軟件包之間的相似性。我怎麼能交叉編譯它呢?有沒有系統的步驟來完成它?請指教。通常爲特定目標交叉編譯任何開源代碼的步驟
0
A
回答
1
我只能假設你下載了一些隨機的OSS tar包,現在卡住了。我只能給你一些提示,因爲我還沒有發現一種通用的,一刀切的解決方案,但在找到最適合你的需求的方法之前,你可能不得不嘗試一下。而且我還沒有遇到過從頭到尾不經過一些調整,擺弄和大量耐心的非平凡交叉編譯工作。
- 基本的解決方案:你需要爲你的平臺工具鏈,看看here如果有什麼預構建滿足您的需求,或者到Dan Kegel's crosstool page,這將在很大程度上自動化工具鏈的建立爲它支持的平臺,並且該工具鏈將允許您編譯和鏈接除標準庫之外沒有其他依賴項的所有程序。
- 許多開源軟件包都帶有autoconf配置腳本,這些腳本是交叉編譯感知的,即添加
--target=xxxx
實際上會使它們使用正確的交叉編譯器。這通常會起作用,但它可能涉及首先下載和交叉編譯/安裝某些庫。主要問題將是一個autoconf腳本,它試圖編譯一小段代碼來研究其輸出,以確定環境的某些功能。有時,這可以通過手動修改配置,或通過例如禁用某些不需要的功能configure --without-xxxx
- 如果你的目標系統是一個嵌入式Linux系統工具,如Buildroot,OpenEmbedded或ELDK將自動不僅可用工具鏈的創建來解決,但也是許多常用庫的交叉編譯,並添加到Linux的包上。這些工具還允許您將其他軟件包添加到其目標列表(例如,您創建或購買的自定義應用程序),但這可能涉及手動解決第2)節中解釋的一些問題。但是這些工具附帶的補丁腳本可以用於瞭解常用技巧以解決編譯問題。
+0
謝謝!我有一個MIPSEL-Linux工具鏈。最近,我嘗試了MIPSEL-Linux的交叉連接管理器,發現相當困難。另外,我嘗試了ECLIPSE-TCF的交叉編譯工具。所有這些都會導致我一個問題。 X86 Linux中有很多實用程序,當我需要爲嵌入式框進行編譯時,它的源代碼是相同的,這並不容易。如果你有任何一般的指導方針。請與示例分享。謝謝 !非常。 –
+0
這就是我試圖解釋的,據我所知,沒有一種萬能解決方案。大量在互聯網上搜索會有所幫助,而且有幾個社區的論壇充斥着從事交叉編譯工作的人員。但是有一個嚴重的學習曲線,我同意這一點。 – fvu
相關問題
- 1. 交叉編譯代碼
- 2. 爲linux arm目標交叉編譯greenlet
- 3. 從64位Linux交叉編譯特定arm目標的Qt
- 4. 編譯Pro * C代碼的步驟
- 5. 交叉編譯visual studio的ARM7代碼
- 6. 如何交叉編譯Java源代碼到JavaScript?
- 7. 交叉編譯源到Linux
- 8. 如何通過CMake交叉編譯CMake的代碼
- 9. 是否可以交叉編譯MIPS的D源代碼?
- 10. 斷言在交叉編譯代碼
- 11. 非C代碼交叉編譯
- 12. 如何爲錯誤的系統編譯目標代碼並交叉編譯問題?
- 13. Cmake交叉編譯標誌
- 14. 交叉編譯的代碼與升壓給編譯錯誤
- 15. 無法找到源代碼 - 通過反彙編步驟
- 16. 如何在Ubuntu下爲sparc目標獲得交叉編譯器?
- 17. 爲iOS和XCode交叉編譯開源c庫4.3
- 18. 通過ghc和mingw工具交叉編譯haskell代碼
- 19. 爲arm編譯交叉編譯e2fsprogs
- 20. 開源小項目的步驟
- 21. 交叉編譯openvswitch爲Android
- 22. 交叉編譯freetype爲Android
- 23. Janino編譯異常:UDJC步驟
- 24. 錯誤在scratchbox中爲ARM交叉編譯單聲道源代碼?
- 25. 如何在Visual Studio中編譯特定的源代碼文件?
- 26. 交叉編譯主機爲目標,打造
- 27. 如何交叉編譯ia188em芯片的C代碼
- 28. 你如何構建交叉編譯代碼的單元測試?
- 29. 交叉編譯開源軟件的專用方式
- 30. Ada多任務實時操作系統支持開源交叉編譯器
你想交叉編譯什麼? MIPSEL只會講述關於CPU的一些事情,您是針對Linux還是其他一些操作系統? – fvu
我在做連接管理器。架構是MIPSEL,OS是Linux。 –