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-11.4.0/gcc/Invoking-GCC.html