3 Параметры командной строки GCC
При вызове GCC обычно выполняет препроцессирование, компиляцию, ассемблирование и компоновку. «Общие параметры» позволяют остановить этот процесс на промежуточном этапе. Например, параметр -c указывает не запускать компоновщик. В результате работы ассемблера будут созданы объектные файлы. См. раздел Параметры, управляющие типом выходных данных.
Другие параметры передаются одному или нескольким этапам обработки. Некоторые параметры управляют препроцессором, другие — самим компилятором. Есть также параметры, управляющие ассемблером и компоновщиком; большинство из них здесь не описано, поскольку обычно в них нет необходимости.
Большинство параметров командной строки GCC предназначены для программ на C; если параметр полезен только для другого языка (обычно C++), это явно указано в описании. Если в описании конкретного параметра не упоминается исходный язык, его можно использовать со всеми поддерживаемыми языками.
Обычно GCC запускают с помощью исполняемого файла с именем gcc, при кросс-компиляции — machine-gcc, а для запуска определённой версии GCC — machine-gcc-version. При компиляции программ на C++ следует вместо этого вызывать GCC как g++. Сведения о различиях в поведении gcc и g++ при компиляции программ на C++ см. в разделе Компиляция программ на C++.
Программа gcc принимает параметры и имена файлов в качестве аргументов. Многие параметры состоят из нескольких букв; поэтому несколько параметров из одной буквы нельзя объединять: -dv существенно отличается от «-d -v».
Параметры можно указывать вместе с другими аргументами. В большинстве случаев их порядок не имеет значения. Порядок важен, если указано несколько параметров одного типа; например, если параметр -L указан несколько раз, каталоги просматриваются в заданном порядке. Также имеет значение расположение параметра -l.
Многие параметры имеют длинные имена, начинающиеся с «-f» или «-W», например -fmove-loop-invariants, -Wformat и т. д. Большинство таких параметров имеют положительную и отрицательную формы; отрицательная форма параметра -ffoo — это -fno-foo. В этом руководстве описана только одна из этих форм — та, которая не используется по умолчанию.
Некоторые параметры принимают один или несколько аргументов, которые обычно отделяются от имени параметра пробелом или знаком равенства («=»). Если не указано иное, аргумент может быть числом или строкой. Числовые аргументы обычно должны быть небольшими беззнаковыми десятичными или шестнадцатеричными целыми числами. Шестнадцатеричные аргументы должны начинаться с префикса «0x». Аргументы параметров, задающих пороговый размер, могут быть сколь угодно большими десятичными или шестнадцатеричными целыми числами с суффиксом размера в байтах, обозначающим кратную единицу измерения, например kB и KiB для килобайта и кибибайта соответственно, MB и MiB для мегабайта и мебибайта, GB и GiB для гигабайта и гибибайта и т. д. В дальнейшем такие аргументы обозначаются как byte-size. Полный перечень и описание двоичных и десятичных префиксов размера в байтах см. в соответствующих стандартах NIST, IEC и других национальных и международных стандартах.
Указатель параметров GCC см. в разделе Указатель параметров.
- Краткий обзор параметров
- Параметры, управляющие типом выходных данных
- Компиляция программ на C++
- Параметры, управляющие диалектом C
- Параметры, управляющие диалектом C++
- Параметры, управляющие диалектами Objective-C и Objective-C++
- Параметры, управляющие OpenMP и OpenACC
- Параметры форматирования диагностических сообщений
- Параметры включения и подавления предупреждений
- Параметры управления статическим анализом
- Параметры отладки программы
- Параметры управления оптимизацией
- Параметры инструментирования программы
- Параметры управления препроцессором
- Передача параметров ассемблеру
- Параметры компоновки
- Параметры поиска каталогов
- Параметры соглашений о генерации кода
- Параметры GCC для разработчиков
- Параметры, зависящие от целевой машины
- Указание подпроцессов и передаваемых им параметров
- Переменные среды, влияющие на GCC
- Использование предварительно скомпилированных заголовков
- Модули C++
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Invoking-GCC.html