В чем же разница "./настройки" опцию "- строить", "хозяин --" и "--цель"?



скрипт ./configure принимает 3 варианта --build,--host и --target. Я путаю их роли. В чем разница и семантика их?

468   2  

2 ответов:

как отметил в этот блог и говорится в GCC настроить условия,--target применяется только при компиляции инструментов. Когда вы делаете обычную кросс-компиляцию библиотеки или двоичного файла, вы используете

--build=the architecture of the build machine
--host=the architecture that you want the file to run on

Впрочем, когда вы are построение цепей инструментов, все может усложниться. Я думаю, что следующее правильно (хотя я не могу сказать, что я когда-либо вручную скомпилировал кросс-отладчик):

позволяет сказать, что у вас есть:

  • машина сборки powerpc, на которой вы собираетесь выполнить всю компиляцию
  • несколько встроенных устройств с процессорами mips, на которых будет выполняться ваш код
  • ноутбук x86, который вы собираетесь использовать для отладки этих устройств в поле

вы бы настроить и построить сервер отладки (например, gdbserver) для запуска на встроенном устройстве с

./configure --build=powerpc --host=mips

так что вы могли бы замазка на встроенное устройство и запустите "gdbserver: 1234 a.out", чтобы начать отладку и прослушивание порта 1234.

затем вы создадите свой клиент отладки (который подключается к gdbserver и управляет им) с помощью

./configure --build=powerpc --host=i686 --target=mips 

который вы скопируете на свой ноутбук x86, чтобы в поле вы могли запустить " gdbclient embedded.устройство: 1234" для отладки вашей программы a. out.

все это относится и к компиляторам, для которых вы можете посмотреть ссылку GCC выше или в этом разделе о канадский крест компиляции.

также обратите внимание, что на практике вы можете не увидеть build, host или target, потому что, согласно эта страница руководства Autoconf, " целевые значения по умолчанию для хоста, хост для сборки и сборки в результате конфигурации.догадка."

одним словом, построить код --build запустите его на --host С --target архитектура среды.

Примечание: аргумент --target имеет смысл только при построении компиляторов (например, GCC). При запуске configure перед построением GCC:

  • --build: машина, на которой вы строите
  • --host: машина, которую вы строите для
  • --target: машина, которая GCC будет производить двоичный файл для

С документация GCC (хост/целевые установки Примечания):

если сборка, хост и цель все одинаковы, это называется Родной. Если сборка и хост одинаковы, но цель отличается, это называется крестом. Если build, host и target все разные, это называется канадским (по неясным причинам, связанным с политической партией Канады и фоном человека, работающего над сборкой в то время). Если узел и цель одинаковы, но сборка отличается, вы используете кросс-компилятор для построения родной для другой системы. Некоторые люди называют этот хозяин-х-хозяин, пересек родным или причине родным. Если сборка и цель одинаковы, но хост отличается, вы используете кросс-компилятор для создания кросс-компилятора, который создает код для машины, на которой вы строите. Это редко, поэтому нет общего способа его описания. Есть предложение назвать это крестоносцах.

Comments

    Ничего не найдено.