Компиляция целей и , ОС и архитектура.
Операционная система должна быть целевой, потому что:
- Формат того, что является "исполняемым" файлом , отличается в разных операционных системах.
- Программы вызывают операционную систему даже для выполнения общих задач, таких как запись в консоль, чтение из файла или чистое завершение (стандарты, такие как POSIX, смягчают зависимости ОС, определяя общий уровень между программой и ОС).
Архитектура ЦП должна быть целевой, поскольку инструкции ЦП различны, даже для разных поколений "одна и та же архитектура" .
- Можно ли запустить полученный исполняемый файл на любом другом дистрибутиве Linux?
В общем, Да , но на определенныхВ некоторых случаях это может зависеть от типа программы (например, GUI) и предполагаемых служб, доступных в ОС.
- Этот исполняемый файл ограничен скомпилированной платформой процессора?Нужно ли искать другой, например, power-pc gcc, когда я запускаю дистрибутив x86?
Я не понимаю, что вы подразумеваете под "search" , но, Да , вы можете кросс-компилировать , скажем, для x86 с таргетингом на PPC.
- Можно ли как-нибудь выполнить это в Windows?Я знаю, что исполняемые файлы отличаются, но двоичный код один и тот же, не так ли?
В наши дни Windows имеет интеграцию с Ubuntu, и это допускает некоторые исключения, но общий ответ таков: Нет из-за вышеизложенного.