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

Может ли gcc перекрестно скомпилировать для разных процессоров?

Возможно ли, чтобы gcc, установленный на fedora 16, перекрестно скомпилировал для другого процессора, скажем, SPARC? У меня есть определенное понимание, нужен какой-то эксперт, чтобы исправить меня, если я ошибаюсь. Различные операционные системы отличаются системными вызовами, которые они используют для доступа к ядру или полностью используемым им ядром. ЭТО ВЕРНО? разные ядра понимают различные системные вызовы для доступа к базовому оборудованию. двоичные файлы или исполняемые файлы или программы - всего лишь куча системных вызовов. поэтому каждая ОС имеет свой собственный исполняемый файл. исполняемый файл, предназначенный для запуска на рану Windows, не запускается на Linux. путем кросс-компиляции исходного кода любого исполняемого файла windown мы можем генерировать исполняемый файл для других ОС. Слово PLATFORM означает операционную систему. POSIX - это определенные стандарты проектирования для UNIX-подобных ОС. мы обычно перекрестно скомпилируем для разных ОС. НО мы можем перекрещивать компиляцию и для другого оборудования? например, в случае микроконтроллера, который не имеет ОС?

4b9b3361

Ответ 1

Нет. Вы не можете использовать собственный компьютер (x86) gcc для компиляции программных файлов для другой архитектуры. Для этого вам нужен кросс-компилятор-gcc, специфичный для этой архитектуры процессора.

Ваше понимание системных вызовов для ОС верное. Каждая ОС имеет свой собственный системный вызов, который используется библиотекой. Эти библиотеки в конце будут переведены на машинный язык для процессора.

Каждая архитектура процессоров имеет собственный набор инструкций, известных как архитектура набора инструкций (ISA). Поэтому, когда скомпилирована программа, написанная на языке высокого уровня (например, C), она должна быть преобразована в машинный язык из своего ISA. Это задание выполняется компилятором (gcc). Компилятор будет специфичен только для одной архитектуры процессора. Например, gcc для процессора x86. Поэтому, если вам нужен компилятор для разных процессоров в вашей машине x86, вы должны пойти на кросс-компилятор этого процессора.

Ответ 2

Вам нужно будет создать такую ​​версию. Эта часть процесса переноса gcc на новую платформу. Вы создаете версию, которая кросс-компилирует, тогда вы перекрестно компилируете эту версию, затем вы тестируете эту версию на новой платформе, отлаживаете, полоскаете и повторяете.