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