3 Параметры командной строки GCC
При вызове GCC обычно выполняются этапы предварительной обработки, компиляции, ассемблирования и компоновки. «Общие параметры» позволяют остановить этот процесс на промежуточной стадии. Например, параметр -c запрещает запуск компоновщика. Тогда результатом будет набор объектных файлов, созданных ассемблером. См. Параметры, определяющие вид вывода.
Другие параметры передаются одному или нескольким этапам обработки. Некоторые параметры управляют предварительной обработкой, другие — непосредственно компилятором. Еще одни параметры управляют ассемблером и компоновщиком; большинство из них не документированы здесь, поскольку вам редко приходится ими пользоваться.
Большинство параметров командной строки, которые можно использовать с GCC, предназначены для программ на языке C; если параметр полезен только с другим языком (обычно C++), это будет явно указано в описании. Если в описании конкретного параметра не указан язык исходного кода, вы можете использовать этот параметр со всеми поддерживаемыми языками.
Обычный способ запуска GCC — запустить исполняемый файл gcc, или machine-gcc при кросс-компиляции, или machine-gcc-version для запуска определенной версии GCC. При компиляции программ на C++ следует вызывать GCC как g++ вместо этого. См. Компиляция программ на C++ для получения информации о различиях в поведении между gcc и g++ при компиляции программ на 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++
- Параметры для управления форматированием сообщений диагностики
- Параметры для запроса или подавления предупреждений
- Параметры, которые управляют статическим анализом
- Параметры отладки программы
- Параметры, управляющие оптимизацией
- Параметры инструментации программы
- Параметры предварительной обработки
- Передача параметров ассемблеру
- Параметры компоновки
- Параметры поиска каталогов
- Параметры конвенций генерации кода
- Параметры разработчика GCC
- Машинно-зависимые параметры
- Указание подпроцессов и параметров для их передачи
- Переменные среды, влияющие на GCC
- Использование предварительно скомпилированных заголовков
- Модули C++
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gcc/Invoking-GCC.html