Кросс-компиляция для SPARC на x86 - PullRequest
2 голосов
/ 08 марта 2010

Я видел ответ о кросс-компиляторах на Как я могу кросс-компилировать код C в Windows для двоичного файла, который также будет работать в Unix (Solaris / HPUX / Linux)?

Я хотел бы знать, как Y может компилировать для SPARC на компьютере x86? Где я могу найти хороший кросс-компилятор? Мне также нужно скомпилировать для HP OS.

1 Ответ

6 голосов
/ 13 марта 2010

gcc полностью на это способен. Компилятор Sun может быть способным, но я больше знаком с gcc. Во-первых, вы должны освоиться с сборкой gcc, а также решить, нужен ли вам только компилятор C или вам нужен C ++ или другие языки.

После того, как вы собрали gcc для хоста, на котором вы находитесь, вы можете перестроить gcc, включив в него цель для целевой машины, для которой вы хотите выполнить кросс-компиляцию.

При сборке кросс-компилятора вы должны правильно определить три вещи: сборку, хост и цель.

  • сборка: машина, на которой вы строите
  • host: машина, для которой вы создаете
  • target: и машина, на которой GCC выдаст код для

Для кросс-компилятора сборка и хост будут одинаковыми, а цель будет другой. Например, вот как сообщить компилятору о необходимости компиляции для кросс-компиляции из Solaris x86 в Solaris Sparc:

./configure --build=x86_64-sun-solaris2.10 --host=x86_64-sun-solaris2.10 --target=sparc-sun-solaris2.10

Затем вы можете создать дополнительный компилятор для каждой цели, к которой вам нужно выполнить кросс-компиляцию.

Компилировать 32-битные и 64-битные исполняемые файлы на платформе, которая запускает оба, довольно просто. Все остальное будет немного сложнее. gcc на Mac построен с несколькими целями, и Apple упростила создание бинарных файлов для нескольких платформ. Все приложения для iPhone скомпилированы на платформе x86 и предназначены для процессора ARM. Если вы можете собрать компилятор для нужных вам целей, то кросс-компиляция обычно довольно проста.

...