Подтвердить что ты не робот

Лучший способ создания перекрестных наборов инструментов для Mac OS X

Я провел последние три недели, исследуя перекрестное развитие в Mac OS X. Я хочу добиться двух отдельных результатов, но я считаю, что они могут быть достигнуты по тому же пути. Я хочу

  • настройте distcc, чтобы помочь моему старому ноутбуку Gentoo, используя iMac, который я недавно получил дома (OS X 10.6, 64 бит native), который я также использую для разработки iOS, поэтому инструменты Xcode 4 уже есть;
  • создайте проект моего любимца, который является ядром эльфа для x86, x86_64 и arm (и я остановлюсь здесь, как на OT).

Итак, после многих этих мыслей, которые мы все делаем в этих случаях, я пришел к мысли, что для достижения первой цели мне нужно настроить i686-pc-linux-gnu toolchain (или это i686- unknown-linux-gnu?) со всеми соответствующими версиями (например, gcc-4.4) и сделать его вызываемым distcc. Похоже, что это разумная задача, но, к сожалению, есть более четкие инструменты и инструкции по созданию инструментальных цепей для неясных арков, таких как sparc или mips, а не один разумно обновленный ресурс о том, как лучше всего перейти на x86. Поэтому первый вопрос: есть ли кто-нибудь, кто успешно создает такую ​​инструментальную цепочку и чувствует, что разделяет боль?:)

Вторая цель. Мой текущий рабочий стол сделан из Gentoo на ноутбуке i686 (да, так же, как и первый) со всеми обычными разработками, и я использую QEMU для его тестирования (его интеграция с gdb потрясающая). То, что я действительно хотел бы сделать, это продолжать использовать ноутбук во время поездок (я много езжу на работу) и продолжать работать и тестировать на iMac, когда я дома (git является удивительным в этом отношении). Следовательно, второй вопрос: есть ли кто-нибудь, кто сделал что-то подобное и хочет поделиться?

Я бы очень признателен за любой вклад. Серьезно.

EDIT Я знаю о MacPorts, crosstool и crosstool-ng. Я попытался установить i386-elf-binutils 2.18 из MacPorts, чтобы узнать, что у меня 2,20 на моем ноутбуке. Также я не мог получить gcc44 для создания объектов i686-pc-linux-gnu elf, а использование i386-elf-gcc не является вариантом, так как мне нужно 4.4, а упакованный - 4.3.

4b9b3361

Ответ 1

Это непростая задача, особенно потому, что вы хотите перекрестно скомпилировать для множества разных платформ.

Самый используемый подход - запустить виртуальную машину с требуемой ОС (например, VirtualBox, Parallels, VMWare Fusion) и установите для них инструменты workbench. Это очень полезно, потому что оно не сложно настроить, а также упрощает отправку, тестирование и отладку кода для/из целевой системы.

Конечно, если вы будете искать достаточно, вы найдете всевозможные хаки/трюки, чтобы настроить инструментальную цепочку на Mac OS X и скомпилировать код для других архитектур:

  • Один из них использует Buildroot, но это означает, что официальная поддержка Mac OS X отсутствует.

  • Другой, также интересный, предлагает пакет .dmg с инструментами, необходимыми для компиляции для Linux на MacOS X.

Ответ 2

Вы уже упоминали Gentoo, поэтому я думаю, вы должны взглянуть на префикс Gentoo. Префикс Gentoo позволяет установить небольшую систему Gentoo в пользовательский каталог (= префикс). Оттуда вы можете запустить оболочку, которая позволяет использовать систему portage (= Gentoo), которая должна позволить вам установить необходимые инструменты.

Я не знаю, в какой форме префикс на OS X сегодня, но я смог установить его на другом MacBook год назад. Если вам интересно, я могу дать более подробную информацию о процессе установки, который может быть немного сложным.