Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
34
Добавлен:
01.05.2014
Размер:
206.19 Кб
Скачать

Передача опций ассемблеру

-Wa, опция

Передать текст опцияв качестве опции при вызове ассемблера. Если текстопциясодержит запятые, то он рассматривается как совокупность опций, каждая из которых передается ассемблеру.

Опции каталогов поиска

-Iкаталог (--include-directory каталог)

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

-I-(--include-barrier)

Все каталоги, заданные при помощи опций -Iдо-I-, просматриваются только для поиска пользовательских включаемых файлов, заданных директивой вида#include"файл". Препроцессор не ищет в них файлы, заданные директивой вида#include <файл>.

Те каталоги поиска, которые заданы при помощи опции -I после-I-, просматриваются для поиска всех включаемых файлов. Обычно (т.е. если опция‑I‑отсутствует) все каталоги-Iиспользуются именно таким образом.

Еще одно действие опции -I-заключается в том, что отменяется поиск включаемых файлов сначала в текущем каталоге (т.е. в том каталоге, где находится исходный файл), причем не существует способа вполне преодолеть этот эффект. При помощи опции “-I.” задается поиск в том каталоге, откуда был вызван компилятор, что не вполне соответствует способу поиска, применяемому препроцессором по умолчанию; хотя в большинстве случаев это оказывается удовлетворительным выходом из положения.

Подчеркнем, что -I-не отменяет использования стандартных системных каталогов поиска, т. е. опции-I- и-nostdinc независимы.

-Bпрефикс(--prefixпрефикс)

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

Драйвер компиляции запускает для обработки входных файлов программы cpp (препроцессор), cc1(компилятор),as(ассемблер),ld(Редактор связей). Для поиска каждой из этих программ используется каталогпрефикс, а также каталогпрефикс/машина/версия (см. ниже гл.10 "Опции описания целевой машины и версии компилятора").

Для поиска программ, которые необходимо запустить, драйвер компиляции просматривает следующие каталоги:

  1. Каталог, заданный опцией -B.

  2. Каталог, заданный переменной окружения GCC_EXEC_PREFIX

  3. Список каталогов, заданный переменной окружения COMPILER_PATH

  4. Подкаталог lib/gcc-lib/машина/версияв установочном каталоге.

  5. /usr/lib/gcc,/usr/local/lib/gcc-lib

  6. Список каталогов, заданный переменной окружения PATH.

Опция -Bтакже задает каталог поиска системных включаемых файловпрефикс/include.

Опции задания целевой машины и версии компилятора

В системе могут быть одновременно установлены компиляторы для разных целевых платформ. Для каждой платформы может быть установлено сразу несколько версий компилятора. Для выбора нужного экземпляра компилятора служат опции -bи-V.

-b машина (--target машина)

Аргумент машина задает имя целевой платформы, для которой нужно выполнить компиляцию. Для выполнения СКРВ Багет можно вызватьgccс опцией-b bt23b.

Имя машина должно совпадать с тем, которое было задано (явно или по умолчанию) как имя целевой платформы во время конфигурирования при установке компилятора.

При вызове компилятора по имени bt23b-gccзадавать опцию-bне требуется

-V версия (--use-version версия)

Аргумент версия задает номер версии, которую нужно использовать. Это полезно, если в системе установлено несколько версий компилятора. Пример:-V 2.7.0.

По умолчанию используется последняя из установленных версий.

Опции -bи-V фактически контролируют часть имени каталога, в котором осуществляется поиск выполняемых файлов, отвечающих за стадии обработки исходных файлов (cpp, cc1, as, ld). Файлы СКРВ Багет, относящиеся к целевой платформемашина и версииверсия находятся в каталоге

/CKCPB/local/H-linux86/lib/gcc-lib/машина/версия.

Если компилятор был установлен не в стандартный каталог /CKCPB/local, то они находятся, соответственно, в каталоге

УСТАНОВОЧНЫЙ_КАТАЛОГ/H-linux86/lib/gcc-lib/машина/версия

Лишь в одном отношении опции -b, -V не отвечают за выбор экземпляра компилятора — программа верхнего уровня (драйвер компиляции)gccвызывается всегда одна и та же. Но, поскольку сам драйвер компиляции не производит никакой обработки исходных файлов, а лишь запускает для этого другие программы (cpp, cc1, as, ld), то практически не имеет значения, какая версияgccвыполняется.

Важный аспект, зависящий от того, какой именно драйвер вы используете — это целевая платформа и версия, принятые по умолчанию. Поэтому имеет смысл устанавливать разные экземпляры драйверов компиляции под разными именами. При установке кросс-компиляторов к имени драйвера автоматически добавляется в качестве префикса имя целевой платформы, например bt23b-gcc. Под этим именем можно (без опции-b) запускать кросс-компилятор для платформыbt23b.

Соседние файлы в папке Еще материалы