2011-05-12 12 views
6

¿Cómo puedo construir un compilador cruzado para una biblioteca de C++ para apuntar muchas plataformas en un único servidor de compilación?multiplataforma C++ compilador cruzado

El compilador cruzado debe ser capaz de compilar la biblioteca para (al menos) {Windows 7, Mac OS X, Ubuntu 11.04} × {32 bit, 64 bit} × {Debug, Release}. No me importa si toda la compilación desde cero lleva para siempre o si el binario gcc es de 1 GB. Si el compilador cruzado no puede ser un solo ejecutable, ¿cuál es el flujo de trabajo que debería usar para compilar (y volver a compilar) mi biblioteca?

El ordenador central sería un Ubuntu 11.04.

+0

Si necesita Mac OS X, entonces la única solución viable para hacer todo esto en un solo servidor sería un servidor Mac OS X y Windows con Ubuntu en dos máquinas virtuales. –

+0

Supongamos que no necesito Mac OS X. Básicamente, ¿no hay forma de tener './ build.sh' para hacerlo? Tengo que hacerlo manualmente en VM? –

+3

Considerando la complejidad, puede ser más económico (si se toma en cuenta su salario y el tiempo adicional para configurar este sistema) comprar una máquina para cada plataforma y basarse en las plataformas apropiadas. –

Respuesta

4

La construcción de compilador cruzado está bastante bien cubierto de OSDev Wiki. Para Windows, puede utilizar paquetes de MinGW en el repositorio de su distribución

0

anfitrión + TeamCity + GCC (MinGW) + GNU make (o solución de escritura de la estructura complementaria) de Windows + MSVC8/9

Usted puede tener TeamCity automatizar el edificio de todo para usted, GCC le permitirá construir objetivos en todas las permutaciones DBG/REL, 32/64 bit, MacOS/Linux. Prueba MSVC8/9 para compatibilidades de compilador cruzado.

+0

La integración continua no es el problema real. Son los compiladores que necesito. De lo contrario, ya tengo un 'buildbot' que compila bien para la máquina local. –