2010-06-17 13 views
6

Duplicar posible:
How to cross compile from Mac OS X to Linux x86?Compilar programa en C++ en Mac para funcionar en Linux

tengo una aplicación que he escrito en C++/SDL, usando la biblioteca FMOD. La aplicación es portátil y se compila sin ningún cambio de código en Mac y en Linux. Pero una molestia es que cuando quiero enviar la versión de Linux, tengo que ejecutar mi cuadro Linux, copiar el código fuente allí (sobre la unidad USB, porque no tengo una red allí, es una computadora portátil vieja) y compilarlo, luego copiar de nuevo a través de USB a mi Mac y subirlo.

Mi pregunta es: ¿hay una mejor manera de hacerlo? Idealmente, ¿podría compilar la aplicación para ejecutar en Linux directamente desde Xcode, donde la compilo para Mac?

+1

Consulte esta pregunta http://stackoverflow.com/questions/1775267/how-to-cross-compile-from-mac-os-x-to-linux-x86 – maerics

+0

Parece una pregunta duplicada, ¿por qué no? ¿Ya ha sido cerrado? La respuesta dice que se use una máquina virtual, por ejemplo, usando VirtualBox. Parece que se adapta muy bien a tu uso. – harms

+2

Esta pregunta no es un duplicado ya que la otra pregunta no menciona a Xcode. La respuesta a esta pregunta es que puedes compilar fácilmente de forma cruzada desde Xcode usando Cocotron. Hay una gran guía aquí: http://blog.tlensing.org/tag/cocotron/ – Nestor

Respuesta

0

Puede vincular estáticamente todo el código (con todas las dependencias) en un solo binario y tener una versión para Mac y una versión para Linux.

3

Eche un vistazo a How to cross compile from Mac OS X to Linux x86? y los enlaces allí (sugiere compilar bajo Linux corriendo en una VM, probablemente la mejor idea, ya que tratar de configurar compilaciones cruzadas generalmente no vale la pena el trabajo y el problema).

2

El riesgo de enviar un binario duff es demasiado alto para que valga la pena intentar crearlo en una caja extraterrestre.

Es evidente que NECESITARá una caja de Linux para pruebas cada vez que haga una nueva versión. Por lo tanto, no será complicado construirlo en esa caja. Sin embargo, usar una máquina virtual Linux es una buena idea, ya que puede asegurarse de que la máquina virtual se encuentre exactamente en el mismo estado (y conocido) antes de cada compilación.

Supongo que al menos va a hacer pruebas de humo en cada lanzamiento.

Cuestiones relacionadas