2013-11-22 19 views
2

我有一套或多或少可移植的C上交叉編譯/ C++源坐在一個Linux開發主機上,我希望能夠:Linux主機的各種目標

  1. 編譯32 - 和64位Linux目標
  2. 交叉編譯爲32位和64位Windows的目標爲32位和64位
  3. 交叉編譯的Mac目標
  4. 和,理想情況下,不會對其他任何運行時依賴仿真DLL就像cygwin1.dll,MinGW等,雖然我可以使用它們,如果沒有其他選擇。如果我必須使用它們,我寧願將它們的功能靜態鏈接到我的代碼。

所期望的目標二進制是:

  1. 共享庫(的.so)用於Linux和Mac目標,

  2. 爲Windows DLL。

我不知道如何從頭構建一個交叉編譯器(和相關的工具鏈)。我聽說預構建的交叉編譯器工具鏈可用於各種主機和目標組合,但我不知道在哪裏可以找到它們,甚至不知道如何使用它們而不會運行到運行時崩潰/ coredumps,因爲指針模型微妙(LP64,LLP64等),指定錯誤或不足的編譯器開關,其他錯誤配置等

我到目前爲止一直無法找到上述的相關和完整的信息,我找到的東西已經遍佈各處,我甚至都不知道我讀到的所有東西是完整的還是正確的(完全適用,對我的情況不會更少)。

我不是一個編譯器專家,只是他們的普通用戶。希望獲得實現上述編譯目標的信息。

回答

1

我想跨Linux編譯Mac OSX庫,我正在考慮imcross。網站上的說明很簡單,但每次你設置一個交叉編譯環境時,你都必須修復很多事情,所以我不會期望它很簡單。你可以在網站上查看這個項目有一些限制,但這是我遇到的最好的。

現在不是我的優先考慮事項(在執行此任務之前,我還有其他的工作要做)我還沒有設置交叉環境。我將在幾天的時間內這樣做。