Вопрос

Я использую Mac OS X 10.5.8 и хочу скомпилировать для целевой CentOS 5.3 с GCC 4.1.2.Как я мог:

  1. Скомпилировать набор инструментов GCC 4.1.2 и связанные с ним инструменты?
  2. Используйте этот инструмент для кросс-компиляции для целевой CentOS 5.3?

Любая помощь очень ценится!

Это было полезно?

Решение

Ваше самое простое решение — просто запустить CentOS 5.3 на виртуальной машине (например,Солнце ВиртуалБокс).Это требует минимальной настройки, имеет вполне разумные накладные расходы (при условии, что Intel Mac), и вы действительно сможете тест и отлаживать что вы строите.

Если вы действительно настаиваете на кросс-компиляции, вам необходимо создать кросс-компилятор.Инструкции здесь и здесь, но будьте осторожны:скорее всего, вам понадобится несколько дней, чтобы все сделать правильно, а затем вы все еще для проверки результата нужна виртуальная машина, поэтому я не вижу смысла делать это таким образом.

Другие советы

Используйте Cocotron для кросс-компиляции непосредственно из Xcode.Здесь есть хорошее руководство для начала работы: http://blog.tlensing.org/tag/cocotron/

В настоящее время вы, вероятно, можете сделать это с Докер для Mac, Я не проверял, потому что у меня нет Mac.Docker по сути создает виртуальную машину Linux и предоставляет некоторые полезные функции.

Установите Docker и подготовьте образ сборки.

  • установить докер
  • начать новый контейнер с docker run -ti centos5.3 /bin/bash (поищите официальную Докер-Хаб для желаемой цели)
  • установите желаемую версию gcc (что-то вроде sudo yum group install "Development Tools")
  • выйти из контейнера
  • бегать docker ps -a чтобы получить идентификатор вашего контейнера
  • сделайте резервную копию вашего контейнера в качестве образа базовой сборки docker commit [id] centos:build

Сделать сборку

Теперь вы можете использовать созданную среду сборки для сборок CentOS.

  • чтобы запустить среду сборки при монтировании внутри нее рабочего каталога, вы можете использовать что-то вроде docker run -it --mount type=bind,source=$(pwd),target=/mnt centos:build /bin/sh -c "cd /mnt && bash"
  • тогда беги gcc ... или ./configure или make или ninja или что-то еще, чтобы сделать вашу сборку
  • вы также можете запустить здесь автоматические тесты, если вы написали некоторые

Докер против виртуальной машины

С Docker вы можете использовать свой любимый терминал со знакомой темой и раскладкой клавиш.Кроме того, он, скорее всего, будет потреблять меньше ресурсов при запуске и во время работы.

Если ваше приложение является графическим и вы тестируете его, используя взаимодействие с его графическим интерфейсом, я думаю, что виртуальная машина по-прежнему будет лучшим вариантом (см. решение @complete-russian).

Вы можете использовать Crosstool-ng или, если вы не хотите тратить слишком много времени на его настройку, вы можете загрузить предварительно настроенный кросс-компилятор, например Linaro.Вот гид для его установки в Mac OS X.

Я изо всех сил пытался получить CrossTool-НГ для сборки OSX 10.9 для Linux x86_64.Я использовал очень полезный пост на как создать кросс-компилятор gcc Джефф Прешинг и его сценарий здесь в качестве основы для сценария, который сработал у меня.Его сценарий по ссылке не работает при компиляции glibc в моей версии OSX (что, похоже, является очень распространенной жалобой среди тех, кто занимается кросс-компиляцией из OSX в Linux).

Мой сценарий здесь: https://github.com/johnlondon/Cross-compile-toolchain-for-linux-on-OSX

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top