2010-06-17 20 views
6

Eventuali duplicati:
How to cross compile from Mac OS X to Linux x86?Compilare programma in C++ su Mac per funzionare su Linux

Ho una domanda che ho scritto in C++/SDL, utilizzando la libreria FMOD. L'app è portatile e compila senza modifiche al codice su Mac e Linux. Ma un fastidio è che quando voglio spedire la versione di Linux, devo far funzionare la mia scatola Linux, copiare il codice sorgente laggiù (su unità USB, perché non ho una rete lì, è un vecchio portatile) e compilarlo, quindi copiare di nuovo tramite USB al mio Mac e caricarlo.

La mia domanda è: c'è un modo migliore per farlo? Idealmente, potrei compilare l'app per funzionare su Linux direttamente da Xcode, dove lo compilo per Mac?

+1

Vedere questa domanda http://stackoverflow.com/questions/1775267/how-to-cross-compile-from-mac-os-x-to-linux-x86 – maerics

+0

Sembra una domanda duplicata diritta, perché hasn ' è stato chiuso ancora? La risposta dice di usare una macchina virtuale, ad esempio usando VirtualBox. Sembra che si adatti molto bene al tuo uso. – harms

+2

Questa domanda non è un duplicato in quanto l'altra domanda non fa menzione di Xcode. La risposta a questa domanda è che puoi facilmente eseguire la compilazione incrociata direttamente da Xcode utilizzando Cocotron. C'è un'ottima guida qui: http://blog.tlensing.org/tag/cocotron/ – Nestor

risposta

0

È possibile collegare staticamente l'intero codice (con tutte le dipendenze) in un singolo binario e disporre di una versione per Mac e una versione per Linux.

3

Dai uno sguardo a How to cross compile from Mac OS X to Linux x86? e ai relativi collegamenti (suggerisce di compilare sotto Linux in esecuzione su una VM, probabilmente l'idea migliore, dal momento che provare a configurare la compilazione incrociata di solito non vale il lavoro e i problemi).

2

Il rischio di spedire un duff binario è troppo alto per meritare di essere preso in giro cercando di costruirlo su una scatola aliena.

Avrete sicuramente bisogno di una scatola di Linux in giro per testare ogni volta che si fa una nuova versione. Pertanto, non sarà complicato costruirlo su quella scatola. L'uso di una macchina virtuale Linux è probabilmente una buona idea in quanto è possibile assicurarsi che la VM sia nello stesso esatto stato (e stato conosciuto) prima di ogni build.

Suppongo che tu stia almeno andando a testare il fumo ogni uscita.

Problemi correlati