11 ответов:
появляется скрипты, которые были написаны, чтобы помочь вам настроить кросс-компиляцию для Mac, я не могу сказать, насколько они хороши, или как это применимо к вашему проекту. В документации они ссылаются на эти инструкции для кросс-компиляции для 10.4 и эти для кросс-компиляции для 10.5; эти инструкции могут быть более полезными, чем сценарий, в зависимости от того, насколько хорошо сценарий соответствует вашим потребностям.
Если ваш программа является бесплатным или открытым исходным кодом, то вы можете вместо этого создать MacPorts portfile (documentation здесь), и позволяют пользователям создавать свою программу с помощью MacPorts; это, как правило, предпочтительный способ установки портативного бесплатного или открытого программного обеспечения на Mac OS X. MacPorts, как известно, работает на Linux в прошлом, поэтому может быть возможно разработать и протестировать ваш Portfile на Linux (хотя это, очевидно, необходимо будет протестировать на Mac).
для Linux существует встроенный кросс-компилятор GCC (из общедоступных модифицированных источников GCC от Apple).
https://launchpad.net / ~flosoft / + архив / cross-apple
обновление на 2015 год
- после стольких лет, IDE индустриального стандарта теперь поддерживает OSX / iOS / Android.
http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311
RadStudio Embarcadero также поддерживает создание приложений OSX / iOS / Android на Windows.
этой ответ by Томас также предоставляет инструмент кросс-компиляции.
для всех этих параметров вам все еще нужно реальное mac / i-устройство для тестирования приложение.
Я создал проект под названием OSXCross который нацелен на OS X (10.4-10.9) из Linux.
в настоящее время она поддерживает
clang3,2 до 3,8 (хобот) (вы можете использовать ваше distclang).
Кроме того, вы можете построить современный ванильGCCтакже (4.6+).LTO работает также, для обоих,
clangиGCC.В настоящее время используя cctools-870 с ld64-242.
- Get" VMware Player"
- Get" Mac OS X VM image"
- Compile / Debug / Integrate-and-test ваш код на новой ОС, чтобы убедиться, что все работает
когда вы пытаетесь сделать что-то работает на нескольких платформах, вы абсолютно должны компилировать/запускать/интегрировать / тестировать на предназначенной платформе. Вы не можете просто скомпилировать / запустить на одной платформе, а затем сказать: "о, он должен работать одинаково другая платформа."
даже с действительно хорошим кросс-платформенным языком, таким как Java, вы столкнетесь с проблемами, когда он не будет работать точно так же на другой платформе.
единственный способ, которым я обнаружил, что уважает мое время/производительность/способность быстро повторять на нескольких платформах,-это использовать виртуальную машину других платформ.
есть и другие решения, такие как двойная загрузка и те, которые я не упомянул, но я считаю, что они этого не делают уважайте мою производительность / время.
принять двойную загрузку в качестве примера:
- Я делаю изменения на OS 1
- перезагрузка в OS 2
- забудьте что-то на OS 1
- перезагрузка в ОС 1
- внесите изменения в ОС 1
- перезагрузка в ОС 2 ... снова...
бац там идет 30 минут моего времени и я не сделал что-нибудь продуктивным.
вам понадобится набор инструментов для кросс-компиляции для mach-o, но даже если бы у вас это было, у вас не будет библиотек Apple для разработки. К сожалению, я не уверен, как вы сможете без них портировать.
разработка Apple-это странный зверь сам по себе. OS X использует порт GCC с некоторыми изменениями, чтобы сделать его "appley". Теоретически, это возможно для источников в Apple GCC и toolchain, а также заголовков ядра и библиотеки Apple и построить кросс-компилятор на вашем компьютере с Windows.
Почему вы хотите пойти по этому пути, вне меня. Вы можете иметь дешевый Mac mini от $ 600. Время, которое вы инвестируете, чтобы кросс-компилятор работал правильно (особенно с a Windows host для инструментов Unix), вероятно, будет стоить больше, чем $ 600 в любом случае.
Если вы действительно хотите, чтобы ваше приложение кросс-платформенный взгляд в Qt, wxWidgets или FLTK. Все они обеспечивают кросс-платформенную поддержку с минимальными изменениями в базовом коде. По крайней мере, таким образом, все, что вам нужно сделать, это найти Mac для компиляции вашего приложения, и это не слишком сложно сделать, если у вас есть некоторые технически настроенные друзья, которые не возражают дать вам доступ SSH к их Mac.
вам обязательно понадобится OS X так или иначе. Даже если у вас нет Mac, вы все равно можете попробовать некоторые варианты.
Я нашел эту небольшую документацию в сети: http://devs.openttd.org / ~truebrain/compile-farm/apple-darwin9.txt
Это описывает именно то, что вы хотите. Я сам заинтересован в этом, еще не тестировал его (нашел его 10 минут назад). Однако документация кажется хорошей.
вы можете нанять mac в облаке С этой сайт. Вы можете нанять их от $1, что должно быть достаточно (если вы нужно root доступ, тогда вы смотрите на $49+).
существует несколько кросс-компиляторных настроек, но почти все они предназначены для распределенной компиляции в стиле distcc. Насколько мне известно, нет никакого способа напрямую нацелиться на платформу Mac без фактического наличия Mac. Самое близкое, что вы можете получить, не прибегая к QT или wxWidgets, - это OpenStep с GNUStep или подобным, но это не настоящая платформа Cocoa, просто очень близко.
короткий ответ-это своего рода. Вам нужно будет использовать кросс-платформенную библиотеку, такую как QT. Есть IDE, такие как Qt Creator, которые позволят вам развиваться на одной ОС и генерировать файлы Makefile для других. Для получения дополнительной информации о кросс-платформенной разработке ознакомьтесь с кросс-платформенными эпизодами этот подкаст (обратите внимание, что серия не закончена, и новые эпизоды появляются еженедельно).
Как объясняют другие ответы, вы, вероятно, можете скомпилировать для Mac на Windows или Linux, но вы не сможете протестировать свои приложения, поэтому вам, вероятно, следует потратить 600 долларов на Mac, Если вы занимаетесь профессиональным программированием или работаете над программным обеспечением с открытым исходным кодом, найдите разработчика с Mac, который поможет вам.
Comments