2011-05-12 196 views
6

如何構建C++庫的交叉編譯器,以便在單個構建服務器上定位多個平臺?多平臺C++交叉編譯器

交叉編譯器應該能夠爲(至少){Windows 7,Mac OS X,Ubuntu 11.04}×{32位,64位}×{Debug,Release}構建庫。我不在乎整個構建是從頭開始還是永久存在,或者二進制文件是1 GB。如果交叉編譯器不能是單個可執行文件,那麼我應該使用什麼工作流來編譯(並重新編譯)我的庫?

主機是Ubuntu 11.04。

+0

如果您需要Mac OS X,那麼在單臺服務器上完成所有這些工作的唯一可行解決方案就是在兩臺虛擬機中運行Ubuntu和Windows的Mac OS X服務器。 – 2011-05-12 15:27:16

+0

假設我不需要Mac OS X.基本上,沒有辦法使用'./ build.sh'來做到這一點?我必須在虛擬機中手動執行它? – 2011-05-12 15:43:51

+3

考慮到它的複雜性,可能會更便宜(如果考慮到您的工資和額外時間來設置此係統)爲每個平臺購買一臺機器,並在適當的平臺上構建。 – 2011-05-12 15:44:28

回答

4

構建交叉編譯器在OSDev Wiki中覆蓋得很好。對於Windows,你可以使用MinGW的包在你的發行版的存儲庫

0

Windows主機+ TeamCity + GCC(MinGW的)+ GNU的make(或互補的構建腳本解決方案)+ MSVC8/9

你可以有TeamCity的自動化建設GCC可以讓你在所有DBG/REL,32/64位,MacOS/Linux排列中構建目標。用於交叉編譯器兼容性的MSVC8/9測試。

+0

持續集成不是實際的問題。這是我需要的編譯器。否則,我已經有了一個'buildbot',它可以很好地編譯本地機器。 – 2011-05-14 16:25:33