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.
| • Краткое описание параметров: | Кратный список всех параметров без объяснений. | |
| • Общие параметры: | Управление типом вывода: исполняемый файл, файлы объектного кода, файлы ассемблера или исходный код после предварительной обработки. | |
| • Вызов G++: | Компиляция программ на C++. | |
| • Параметры диалекта C: | Управление вариантом языка C, который будет компилироваться. | |
| • Параметры диалекта C++: | Варианты языка C++. | |
| • Параметры диалекта Objective-C и Objective-C++: | Варианты Objective-C и Objective-C++. | |
| • Параметры форматирования сообщений диагностики: | Управление форматированием сообщений диагностики. | |
| • Параметры предупреждений: | Насколько придирчивым должен быть компилятор? | |
| • Параметры статического анализатора: | Более дорогостоящие предупреждения. | |
| • Параметры отладки: | Создание отлаживаемого кода. | |
| • Параметры оптимизации: | Уровень оптимизации. | |
| • Параметры инструментирования: | Включение профилирования и проверки ошибок во время выполнения. | |
| • Параметры предварительного процессора: | Управление заголовочными файлами и макроопределениями. Также получение информации о зависимостях для Make. | |
| • Параметры ассемблера: | Передача параметров ассемблеру. | |
| • Параметры линковки: | Указание библиотек и т. д. | |
| • Параметры каталогов: | Где искать заголовочные файлы и библиотеки. Где искать исполняемые файлы компилятора. | |
| • Параметры генерации кода: | Указание соглашений для вызовов функций, расположения данных и использования регистров. | |
| • Параметры разработчика: | Вывод информации о конфигурации GCC, статистике и отладочных дампах. | |
| • Параметры подмодели: | Параметры, специфичные для целевой архитектуры, например, компиляция для конкретного варианта процессора. | |
| • Файлы спецификаций: | Как передавать переключатели дочерним процессам. | |
| • Переменные среды: | Переменные среды, влияющие на GCC. | |
| • Предварительно скомпилированные заголовки: | Компиляция заголовка один раз и использование его многократно. | |
| • Модули C++: | Экспериментальная система модулей C++20. |
Далее: Реализация C, Предыдущее: Стандарты, Вверх: Верх [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Invoking-GCC.html