2010-06-17 14 views
6

Powiel możliwe:
How to cross compile from Mac OS X to Linux x86?kompilacji programu C++ na Mac uruchomić na Linuksie

Mam aplikacji, które napisałem w C++/SDL, z wykorzystaniem biblioteki FMOD. Aplikacja jest przenośna i kompiluje się bez jakiejkolwiek zmiany kodu na Macu i Linuksie. Ale jedną z irytacji jest to, że kiedy chcę dostarczyć wersję Linuksa, muszę uruchomić moje Linux-a, skopiować tam kod źródłowy (przez napęd USB, ponieważ nie mam tam żadnej sieci, jest to stary laptop) i skompilować go, a następnie skopiować ponownie przez USB do mojego Maca i załaduj go.

Moje pytanie brzmi - czy jest lepszy sposób na zrobienie tego? Idealnie, czy mogę skompilować aplikację do pracy na Linuksie bezpośrednio z Xcode, gdzie kompiluję ją na Maca?

+1

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

+0

Wydaje się, że jest to proste zduplikowane pytanie, dlaczego nie " jest już zamknięty? Odpowiedź w tym miejscu mówi o użyciu maszyny wirtualnej, na przykład przy użyciu VirtualBox. Wydaje się, że bardzo dobrze pasuje do twojego zastosowania. – harms

+2

To pytanie nie jest duplikatem, ponieważ inne pytanie nie wspomina o Xcode. Odpowiedź na to pytanie jest taka, że ​​możesz łatwo skrosować kompilację bezpośrednio z Xcode za pomocą Cocotron. Tutaj jest świetny przewodnik: http://blog.tlensing.org/tag/cocotron/ – Nestor

Odpowiedz

0

Można statycznie odwołuje cały kod (ze wszystkimi zależnościami) w jeden binarny i ma wersji dla systemów Mac i wersji dla Linuksa.

3

Spójrz na How to cross compile from Mac OS X to Linux x86?, a zawarte w nim linki (sugerują kompilację pod Linuksem uruchomioną w maszynie wirtualnej, prawdopodobnie najlepszy pomysł, ponieważ próba ustawienia kompilacji krzyżowej zwykle nie jest warta pracy i kłopotów).

2

Ryzyko dostarczane binarne Duff jest zbyt wysoka, aby być warte przeszkadza próbuje budować go na obcym polu.

POTRZEBUJESZ paczkę Linuxa, która będzie testowana za każdym razem, gdy będziesz robić nową wersję. Dlatego nie będzie kłopotów z budowaniem go na tym polu. Używanie maszyny wirtualnej dla systemu Linux jest prawdopodobnie dobrym pomysłem, ponieważ można upewnić się, że maszyna wirtualna znajduje się dokładnie w tym samym stanie (i znanym stanie) przed każdą kompilacją.

Zakładam, że przynajmniej zamierzasz testować dymem każde wydanie.