каково различие между кросс-компиляцией и собственной компиляцией

Клочок использования:

shred -vfz /dev/X

4
07.02.2011, 16:44
3 ответа

Вы используете кросс-компилятор для создания исполняемых файлов (или объекты) для платформы кроме локального хоста. Собственный компилятор только производит собственные двоичные файлы.

6
27.01.2020, 20:51
  • 1
    Просто дополнительное примечание. Перекрестная компиляция может потребовать некоторой установки библиотеки на цели (MSYS возможно) –  RobotHumans 07.02.2011, 15:46
  • 2
    @aking1012 — я не думаю, что это - обязательно проблема с кросс-компиляцией себя. –  mattdm 07.02.2011, 19:33
  • 3
    @mattdm - если мы говорим перекрестная компиляция через архитектуру, это не. если мы говорим о перекрестной компиляции от Linux до окон..., возможно, я интерпретирую кросс-компиляцию по-другому. –  RobotHumans 07.02.2011, 19:38
  • 4
    @aking1012 — я думаю, что это - деталь реализации в любом случае. –  mattdm 07.02.2011, 19:53

Перекрестная компиляция компилирует что-то для другого типа ЦП, чем тот, на котором Вы работаете. Пример компилирует двоичные файлы ARM под i386 системой или компилирует 64-разрядные исполняемые файлы под 32-разрядной системой.

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

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

1
27.01.2020, 20:51
  • 1
    Кросс-компиляция в более общем плане компилирует для другой платформы, не только другого типа ЦП. Например, MinGW может использоваться в качестве кросс-компилятора для создания исполняемых файлов MS Windows на Linux — x86 в обоих случаях. –  mattdm 07.02.2011, 19:36
  • 2
    , какой является слишком медленным? спасибо –  Renjith G 08.02.2011, 06:51

Кросс-компиляция создается для платформы (грубо говоря, комбинации ОС, семейства ЦП и ABI), отличной от той, на которой вы работаете. Это означает наличие компилятора, который работает на одной платформе, но нацелен на другую платформу. Обычно (есть исключения из этого, потому что некоторые платформы имеют уровни совместимости) означает, что вы не можете просто запускать двоичные файлы, которые вы только что создали.

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

0
27.01.2020, 20:51

Теги

Похожие вопросы