АнглийскийФранцузскийИспанский

Значок OnWorks

cpp-5 - онлайн в облаке

Запустите cpp-5 в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда cpp-5, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


cpp - Препроцессор C

СИНТАКСИС


cpp [-Dмакрос[=определение] ...] [-Uмакрос]
[-Iдиректория...] [-я цитируюдиректория...]
[-Wпредупреждать...]
[-M|-MM] [-МГ] [ имя файла]
[-МП] [-MQ цель...]
[-MT цель...]
[-P] [-fno-рабочий-каталог]
[-x язык] [-std =стандарт]
вводить Outfile

Здесь перечислены только самые полезные опции; остаток см. ниже.

ОПИСАНИЕ


Препроцессор C, часто известный как CPP, Является макрос процессор который автоматически используется
компилятор C для преобразования вашей программы перед компиляцией. Это называется макросом
процессор, потому что он позволяет вам определять Макрос, которые являются краткими сокращениями для более длинных
конструкты.

Препроцессор C предназначен для использования только с исходным кодом C, C ++ и Objective-C.
В прошлом он использовался как обычный текстовый процессор. Он подавится вводом, который
не подчиняется лексическим правилам C. Например, апострофы будут интерпретироваться как
начало символьных констант и вызывают ошибки. Кроме того, на это нельзя положиться
сохранение характеристик ввода, которые не имеют значения для языков C-семейства.
Если Makefile предварительно обработан, все жесткие вкладки будут удалены, и Makefile будет
не работа.

Сказав это, вы часто можете обойтись без использования cpp для вещей, которые не относятся к C. Другое
Алголоидные языки программирования часто безопасны (Паскаль, Ада и т. Д.). Так же как и ассемблер, с
осторожность. -традиционный-cpp режим сохраняет больше пустого пространства, и в противном случае больше
разрешительный. Многие проблемы можно избежать, написав комментарии в стиле C или C ++.
вместо комментариев на родном языке и упрощения макросов.

По возможности следует использовать препроцессор, ориентированный на язык, на котором вы пишете.
in. Современные версии ассемблера GNU имеют средства макросов. Самый высокий уровень
языки программирования имеют собственный механизм условной компиляции и включения. Если
все остальное терпит неудачу, попробуйте настоящий текстовый процессор общего назначения, такой как GNU M4.

Препроцессоры C различаются в некоторых деталях. В этом руководстве обсуждается препроцессор GNU C, который
предоставляет небольшой набор функций стандарта ISO C. В режиме по умолчанию GNU
Препроцессор C не делает некоторых вещей, требуемых стандартом. Это особенности
которые используются редко, если вообще используются, и могут вызвать неожиданные изменения в значении
программа, которая их не ожидает. Чтобы получить строгий стандарт ISO C, вы должны использовать
-std = C90, -std = C99 or -std = C11 варианты, в зависимости от того, какую версию стандарта вы
хотеть. Чтобы получить всю обязательную диагностику, вы также должны использовать -педантический.

В этом руководстве описывается поведение препроцессора ISO. Чтобы свести к минимуму безвозмездные
различия, где поведение препроцессора ISO не противоречит традиционным
семантика, традиционный препроцессор должен вести себя точно так же. Различные
существующие различия подробно описаны в разделе Традиционном режим.

Для ясности, если не указано иное, ссылки на CPP в этом руководстве ссылка на GNU CPP.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Препроцессор C ожидает в качестве аргументов два имени файла, вводить и Outfile,
препроцессор читает вводить вместе с любыми другими файлами, которые он указывает с помощью #включают. Все
вывод, сгенерированный объединенными входными файлами, записывается в Outfile.

Или вводить or Outfile может быть -который как вводить означает чтение из стандартного ввода и
as Outfile означает запись на стандартный вывод. Кроме того, если какой-либо файл опущен, это означает
так же, как если бы - был указан для этого файла.

Если не указано иное или опция заканчивается на =, все параметры, которые принимают аргумент, могут
чтобы этот аргумент появлялся либо сразу после параметра, либо с пробелом между
вариант и аргумент: -Ифу и -I Foo имеют тот же эффект.

Многие варианты имеют многобуквенные имена; поэтому несколько однобуквенных вариантов могут be
сгруппированы: -дМ сильно отличается от -d -M.

-D имя
Предопределить имя как макрос с определением 1.

-D имя=определение
Содержание определение токенизируются и обрабатываются так, как если бы они появились во время
перевод третий этап в #define директива. В частности, определение будет
усекается встроенными символами новой строки.

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

Если вы хотите определить макрос в командной строке, напишите его аргумент
список с окружающими круглыми скобками перед знаком равенства (если есть). Круглые скобки
имеет смысл для большинства оболочек, поэтому вам нужно будет указать эту опцию в кавычках. С участием sh и CSH,
-D 'имя(аргументы ...)=определение' работ.

-D и -U параметры обрабатываются в том порядке, в котором они указаны в командной строке. Все
-имакрос файл и -включают файл варианты обрабатываются все-таки -D и -U настройки.

-U имя
Отменить любое предыдущее определение имя, либо встроенные, либо снабженные -D опцию.

-undef
Не задавайте заранее какие-либо системные или специфичные для GCC макросы. Стандартный предопределенный
макросы остаются определенными.

-I директория
Добавить каталог директория в список каталогов для поиска файлов заголовков.

Каталоги, названные -I поиск выполняется до того, как стандартная система включает каталоги.
Если каталог директория стандартный системный каталог include, параметр игнорируется, чтобы
убедитесь, что порядок поиска по умолчанию для системных каталогов и особая обработка
системных заголовков не побеждены. Если директория начинается с "=", тогда "=" будет
заменен префиксом sysroot; видеть --sroot и -isysroot.

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

-Стена
Включает все необязательные предупреждения, которые желательны для обычного кода. В настоящее время это
is -Wкомментарий, -Писания, -Wмультисимвол и предупреждение о целочисленной рекламе, вызывающей
изменение знака в выражениях "#if". Обратите внимание, что многие предупреждения препроцессора
включены по умолчанию и не имеют возможности управлять ими.

-Wкомментарий
-Комментарии
Предупреждать всякий раз, когда начинается последовательность комментариев /* появляется в /* комментарий, или всякий раз, когда
обратная косая черта-новая строка появляется в // комментарий. (Обе формы имеют одинаковый эффект.)

-Писания
Большинство триграфов в комментариях не могут повлиять на смысл программы. Однако
триграф, который сформировал бы экранированный символ новой строки (?? / в конце строки) может,
изменение места начала или конца комментария. Следовательно, только триграфы, образующие
экранированные символы новой строки вызывают предупреждения внутри комментария.

Этот вариант подразумевается -Стена. Если -Стена не указан, этот параметр все еще включен
если не включены триграфы. Чтобы получить преобразование триграфа без предупреждений, но получить
другие -Стена предупреждения, используйте -триграфы -Стена -Wno-триграфы.

-Wтрадиционный
Предупреждать об определенных конструкциях, которые ведут себя по-разному в традиционном и ISO C. Также
предупреждать о конструкциях ISO C, у которых нет традиционного эквивалента C, и о проблемных
конструкции, которых следует избегать.

-Вундеф
Предупреждать всякий раз, когда идентификатор, не являющийся макросом, встречается в #если Директива,
пределами определенный. Такие идентификаторы заменяются нулем.

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

Встроенные макросы, макросы, определенные в командной строке, и макросы, определенные в include
файлы не предупреждаются.

Примечание: Если макрос действительно используется, но используется только в пропущенных условных блоках, тогда
CPP сообщит, что он не использовался. Чтобы избежать предупреждения в таком случае, вы можете улучшить
область определения макроса, например, перемещая его в первое пропущенное
блокировать. В качестве альтернативы вы можете предоставить фиктивное использование с чем-то вроде:

#if определено the_macro_causing_the_warning
#endif

-Wendif-лейблы
Предупреждать всякий раз, когда #еще или #endif следуют текст. Обычно это происходит в
код формы

#если фу
...
#else ФУ
...
#endif ФУ

Второй и третий «FOO» должны быть в комментариях, но их часто нет в старых программах.
Это предупреждение включено по умолчанию.

-Ошибка
Превратите все предупреждения в серьезные ошибки. Исходный код, вызывающий предупреждения, будет
отвергнуто.

-Wsystem-заголовки
Выдавать предупреждения для кода в системных заголовках. Обычно они бесполезны при поиске
ошибки в вашем собственном коде, поэтому подавляются. Если вы отвечаете за систему
библиотеки, возможно, вы захотите их увидеть.

-w Подавить все предупреждения, включая те, которые выдает GNU CPP по умолчанию.

-педантический
Выполните все обязательные диагностики, перечисленные в стандарте C. Некоторые из них остались
по умолчанию, поскольку они часто срабатывают для безобидного кода.

-педантические-ошибки
Проведите всю обязательную диагностику и превратите всю обязательную диагностику в ошибки.
Это включает в себя обязательную диагностику, которую GCC выдает без -педантический но относится как
предупреждения.

-M Вместо вывода результата предварительной обработки выведите правило, подходящее для сделать
описание зависимостей основного исходного файла. Препроцессор выдает один
сделать правило, содержащее имя объектного файла для этого исходного файла, двоеточие и имена
всех включенных файлов, в том числе из -включают or -имакрос команда-
параметры линии.

Если не указано явно (с -MT or -MQ) имя объектного файла состоит из
имя исходного файла с любым суффиксом, замененным суффиксом объектного файла и любым
ведущие части каталога удалены. Если есть много включенных файлов, то правило
разделить на несколько строк, используя \-новая линия. В правиле нет команд.

Эта опция не подавляет отладочные данные препроцессора, такие как -дМ. Избежать
смешивая такой вывод отладки с правилами зависимости, вы должны явно указать
выходной файл зависимости с или используйте переменную среды, например
ЗАВИСИМОСТИ_OUTPUT. Выходные данные отладки будут по-прежнему отправляться в обычный выходной поток как
Normal.

Прохождение -M водителю подразумевает -E, и подавляет предупреждения с неявным -w.

-MM Подобно -M но не упоминайте файлы заголовков, которые находятся в каталогах системных заголовков,
ни файлы заголовков, которые прямо или косвенно включены из такого заголовка.

Это означает, что выбор угловых скобок или двойных кавычек в #включают
директива сама по себе не определяет, появится ли этот заголовок в -MM
вывод зависимости. Это небольшое изменение семантики по сравнению с версиями GCC 3.0 и
ранее.

файл
При использовании с -M or -MM, указывает файл для записи зависимостей. Если нет
switch препроцессор отправляет правила в то же место, куда он отправил бы
предварительно обработанный вывод.

При использовании с опциями драйвера -MD or -ММД, отменяет зависимость по умолчанию
выходной файл.

-МГ В сочетании с такой опцией, как -M запрос генерации зависимости, -МГ предполагает,
отсутствующие файлы заголовков являются сгенерированными файлами и добавляют их в список зависимостей без
поднимая ошибку. Имя файла зависимости берется непосредственно из "#include"
директива без добавления пути. -МГ также подавляет предварительно обработанный вывод, так как
отсутствие файла заголовка делает это бесполезным.

Эта функция используется при автоматическом обновлении make-файлов.

-МП Эта опция указывает CPP добавить фальшивую цель для каждой зависимости, кроме
main файл, в результате чего каждый ни от чего не зависит. Эти фиктивные правила позволяют обходить ошибки
сделать дает, если вы удалите файлы заголовков без обновления Makefile чтобы соответствовать.

Это типичный вывод:

test.o: test.c test.h

тест.ч:

-MT цель
Измените цель правила, созданного при генерации зависимости. По умолчанию CPP принимает
имя основного входного файла, удаляет все компоненты каталога и любой суффикс файла
как .c, и добавляет обычный суффикс объекта платформы. Результат - цель.

An -MT option установит в качестве цели именно ту строку, которую вы указали. Если хочешь
несколько целей, вы можете указать их как один аргумент для -MT, или используйте несколько
-MT настройки.

Например, -MT '$ (objpfx) foo.o' может дать

$ (objpfx) foo.o: foo.c

-MQ цель
Такой же как -MT, но он цитирует любые символы, которые являются специальными для Make.
-MQ '$ (objpfx) foo.o' дает

$$ (objpfx) foo.o: foo.c

Цель по умолчанию автоматически цитируется, как если бы она была задана с помощью -MQ.

-MD -MD эквивалентна -M файл, Кроме этого -E не подразумевается. Водитель
определяет файл в зависимости от того, есть ли -o предоставляется вариант. Если это так, драйвер использует свой
аргумент, но с суффиксом .d, в противном случае он принимает имя входного файла,
удаляет все компоненты каталога и суффикс и применяет .d суффикс.

If -MD используется в сочетании с -E, любой -o переключатель понимается, чтобы указать
выходной файл зависимостей, но если он используется без -Eкаждый -o понимается как указать
целевой объектный файл.

С -E не подразумевается, -MD может использоваться для создания выходного файла зависимости как
побочный эффект процесса компиляции.

-ММД
Подобно -MD за исключением упоминания только файлов заголовков пользователей, а не файлов системных заголовков.

-x c
-x C ++
-x Objective-C
-x ассемблер-с-cpp
Укажите исходный язык: C, C ++, Objective-C или ассемблер. Это не имеет ничего общего
с соответствием или расширениями стандартов; он просто выбирает, какой базовый синтаксис
ожидать. Если вы не укажете ни один из этих параметров, cpp определит язык из
расширение исходного файла: .c, .cc, .mили .S. Некоторые другие распространенные расширения для
Также распознаются C ++ и сборка. Если cpp не распознает расширение, он
будет рассматривать файл как C; это самый общий режим.

Примечание: Предыдущие версии cpp принимали -ланг вариант, который выбрал как
язык и уровень соответствия стандартам. Эта опция была удалена, потому что
это противоречит -l опцию.

-std =стандарт
-анси
Укажите стандарт, которому должен соответствовать код. В настоящее время CPP знает о C
и стандарты C ++; другие могут быть добавлены в будущем.

стандарт может быть одним из:

"c90"
"c89"
"iso9899: 1990"
Стандарт ISO C с 1990 года. c90 обычное сокращение для этой версии
стандарт.

Команда -анси вариант эквивалентен -std = C90.

"iso9899: 199409"
Стандарт C 1990 г. с поправками 1994 г.

"iso9899: 1999"
"c99"
"iso9899: 199x"
"c9x"
Пересмотренный стандарт ISO C, опубликованный в декабре 1999 г. Перед публикацией этот
был известен как C9X.

"iso9899: 2011"
"c11"
"c1x"
Пересмотренный стандарт ISO C, опубликованный в декабре 2011 г. Перед публикацией этот
был известен как C1X.

"gnu90"
"gnu89"
Стандарт C 1990 года плюс расширения GNU. Это значение по умолчанию.

"gnu99"
"gnu9x"
Стандарт C 1999 года плюс расширения GNU.

"gnu11"
"gnu1x"
Стандарт C 2011 года плюс расширения GNU.

"c ++ 98"
Стандарт ISO C ++ 1998 года с поправками.

"GNU ++ 98"
Такой же как -std = c ++ 98 плюс расширения GNU. Это значение по умолчанию для кода C ++.

-Я- Разделите включаемый путь. Любые каталоги, указанные с помощью -I варианты до -Я-
искал только заголовки, запрошенные с "#include"файл""; их не ищут
"#включаютфайл> ". Если дополнительные каталоги указаны с -I варианты после
-Я-, в этих каталогах выполняется поиск всех #включают директивы.

Кроме того, -Я- запрещает использование каталога текущего файлового каталога как
первый каталог поиска для "#include"файл"".

Эта опция устарела.

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

-nostdinc ++
Не ищите файлы заголовков в стандартных каталогах C ++, но все же выполняйте поиск.
поиск в других стандартных каталогах. (Эта опция используется при сборке C ++
библиотека.)

-включают файл
Обработка файл как если бы "#include" файл "" появился как первая строка первичного источника
файл. Однако первый каталог искал файл препроцессор работает
каталог вместо of каталог, содержащий основной исходный файл. Если не найден
там он ищется в оставшейся части поисковой цепочки "#include" ... "" как
Normal.

Если несколько -включают приведены параметры, файлы включаются в том порядке, в котором они
появляются в командной строке.

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

Все файлы, указанные -имакрос обрабатываются до того, как все файлы, указанные в -включают.

-идирафтер директория
Поиск директория для файлов заголовков, но сделайте это после все каталоги, указанные с помощью -I и
стандартные системные каталоги исчерпаны. директория рассматривается как система, включающая
каталог. Если директория начинается с "=", затем "=" будет заменен системным корнем
приставка; видеть --sroot и -isysroot.

-iпрефикс префикс
Указывать префикс в качестве префикса для последующих -iс префиксом параметры. Если приставка
представляет каталог, вы должны включить последний /.

-iс префиксом директория
-iwithprefixbefore директория
присоединять директория к префиксу, указанному ранее с -iпрефикс, и добавляем полученный
каталог в путь поиска включения. -iwithprefixbefore кладет в то же место -I
бы; -iс префиксом кладет это где -идирафтер бы.

-isysroot директория
Этот вариант похож на --sroot вариант, но применяется только к файлам заголовков (кроме
Darwin, где он применяется как к файлам заголовков, так и к библиотекам). Увидеть
--sroot вариант для получения дополнительной информации.

-имультилиб директория
Используйте директория в качестве подкаталога каталога, содержащего заголовки C ++ для конкретных целей.

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

If директория начинается с «=», затем «=» заменяется префиксом sysroot; видеть
--sroot и -isysroot.

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

If директория начинается с «=», затем «=» заменяется префиксом sysroot; видеть
--sroot и -isysroot.

-fdirectives-только
При предварительной обработке обрабатывайте директивы, но не расширяйте макросы.

Поведение опции зависит от -E и -fпредварительно обработанный настройки.

Таким образом, с помощью -E, предварительная обработка ограничивается обработкой таких директив, как "#define",
«#ifdef» и «#error». Другие операции препроцессора, такие как расширение макроса и
преобразование триграфа не выполняется. В дополнение -дД опция неявно
включен.

Таким образом, с помощью -fпредварительно обработанный, предопределение командной строки и большинства встроенных макросов
отключен. Обрабатываются такие макросы, как «__LINE__», которые зависят от контекста.
как обычно. Это позволяет компилировать файлы, предварительно обработанные с помощью "-E".
-fdirectives-only ".

С обоими -E и -fпредварительно обработанный, правила для -fпредварительно обработанный имеют приоритет. Этот
включает полную предварительную обработку файлов, предварительно обработанных с помощью "-E"
-fdirectives-only ".

-fdollars-в-идентификаторах
Принять $ в идентификаторах.

-fextended-идентификаторы
Принимайте универсальные символьные имена в идентификаторах. Эта опция включена по умолчанию
для C99 (и более поздних стандартных версий C) и C ++.

-fno-canonical-system-заголовки
При предварительной обработке не сокращайте пути системных заголовков канонизацией.

-fпредварительно обработанный
Сообщите препроцессору, что входной файл уже был предварительно обработан. Этот
подавляет такие вещи, как расширение макроса, преобразование триграфа, экранирование сращивания новой строки,
и обработка большинства директив. Препроцессор по-прежнему распознает и удаляет
комментарии, чтобы вы могли передать файл, предварительно обработанный с помощью -C компилятору без
проблемы. В этом режиме интегрированный препроцессор - это не что иное, как токенизатор.
для передних концов.

-fпредварительно обработанный неявно, если входной файл имеет одно из расширений .i, .ii or .mi.
Это расширения, которые GCC использует для предварительно обработанных файлов, созданных -сохранение темпов.

-ftabstop =ширина
Установите расстояние между позициями табуляции. Это помогает препроцессору сообщить правильный столбец.
числа в предупреждениях или ошибках, даже если в строке появляются табуляции. Если значение меньше
чем 1 или больше 100, опция игнорируется. По умолчанию - 8.

-fdebug-cpp
Эта опция полезна только для отладки GCC. При использовании с -E, выводит отладку
информация о картах расположения. Каждому токену на выходе предшествует дамп
карта, к которой принадлежит его местоположение. Дамп карты с местонахождением токена
было бы:

{"ПФ ; "F": F ; "L": ; "C": ; "S": ; "М": ; "E": , "loc": }

При использовании без -E, этот параметр не действует.

-ftrack-macro-extension[=уровень]
Отслеживайте расположение токенов в расширениях макросов. Это позволяет компилятору выдавать
диагностика текущего стека расширения макроса при возникновении ошибки компиляции в
расширение макроса. Использование этой опции заставляет препроцессор и компилятор потреблять
больше памяти. В уровень параметр может использоваться для выбора уровня точности токена
отслеживание местоположения, что при необходимости снижает потребление памяти. Ценить 0 of
уровень отключает эту опцию, как если бы нет -ftrack-macro-extension присутствовал на
командная строка. Ценить 1 отслеживает расположение токенов в деградированном режиме ради
минимальные накладные расходы на память. В этом режиме все жетоны, полученные в результате расширения
аргумент функционально-подобного макроса находится в том же месте. Ценить 2 отслеживает токены
локации полностью. Это значение больше всего требует памяти. Когда предоставляется этот вариант
без аргумента, значение параметра по умолчанию 2.

Обратите внимание, что "-ftrack-macro-extension = 2" активирован по умолчанию.

-fexec-charset =кодировок
Установите набор символов выполнения, используемый для строковых и символьных констант. По умолчанию
это UTF-8. кодировок может быть любой кодировкой, поддерживаемой системной библиотекой "iconv"
рутина.

-fwide-exec-charset =кодировок
Установите широкий набор символов выполнения, используемый для широких строковых и символьных констант.
По умолчанию используется UTF-32 или UTF-16, в зависимости от того, что соответствует ширине wchar_t. В качестве
-fexec-кодировка, кодировок может быть любой кодировкой, поддерживаемой системным "iconv"
библиотечная рутина; однако у вас будут проблемы с кодировками, которые не подходят
именно в "wchar_t".

-finput-charset =кодировок
Установите набор символов ввода, используемый для перевода из набора символов ввода
в исходный набор символов, используемый GCC. Если языковой стандарт не указан, либо GCC
не может получить эту информацию из локали, по умолчанию используется UTF-8. Это может быть
переопределено либо локалью, либо этой опцией командной строки. В настоящее время команда-
опция line имеет приоритет в случае конфликта. кодировок может быть любая кодировка
поддерживается подпрограммой библиотеки "iconv" системы.

-рабочий-каталог
Включите генерацию линейных маркеров в выводе препроцессора, что позволит компилятору
знать текущий рабочий каталог во время предварительной обработки. Когда эта опция
включен, препроцессор будет выдавать после начального линейного маркера второй линейный маркер.
с текущим рабочим каталогом с двумя косыми чертами. GCC будет использовать это
каталог, когда он присутствует в предварительно обработанных входных данных, поскольку каталог создается как
текущий рабочий каталог в некоторых форматах отладочной информации. Этот вариант
неявно включен, если включена отладочная информация, но это можно запретить с помощью
отрицательная форма -fno-рабочий-каталог, Если -P флаг присутствует в команде
line, эта опция не действует, так как никакие директивы "#line" не испускаются вообще.

-fno-show-столбец
Не печатайте номера столбцов в диагностике. Это может быть необходимо, если диагностика
сканирование программой, которая не понимает номера столбцов, например
Дежагну.

-A сказуемое=ответ
Сделайте утверждение с предикатом сказуемое и ответ ответ. Эта форма
предпочтительнее более старой формы -A сказуемое(ответ), который все еще поддерживается, потому что он
не использует специальные символы оболочки.

-A -сказуемое=ответ
Отменить утверждение с предикатом сказуемое и ответ ответ.

-dCHARS
СИМВОЛЫ представляет собой последовательность из одного или нескольких следующих символов и не может быть
предшествует пробел. Остальные символы интерпретируются компилятором, или
зарезервировано для будущих версий GCC и поэтому игнорируется. Если вы укажете
персонажи, поведение которых противоречит, результат не определен.

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

прикоснитесь к foo.h; cpp -dM foo.h

покажет все предопределенные макросы.

Если вы используете -дМ без -E вариант, -дМ интерпретируется как синоним
-fdump-rtl-mach.

D Подобно M за исключением двух аспектов: это делает включить предопределенные макросы, и
выходы изоферменты печени #define директивы и результат предварительной обработки. Оба вида
вывода идут в стандартный выходной файл.

N Подобно D, но выдают только имена макросов, а не их расширения.

I Результат #включают директивы в дополнение к результату предварительной обработки.

U Подобно D за исключением того, что только макросы, которые раскрываются или чья определенность проверяется
в директивах препроцессора выводятся; вывод задерживается до использования или
тест макроса; а также #ундеф директивы также выводятся для протестированных макросов, но
не определено в то время.

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

-C Не отбрасывайте комментарии. Все комментарии передаются в выходной файл, кроме
для комментариев в обработанных директивах, которые удаляются вместе с директивой.

Будьте готовы к побочным эффектам при использовании -C; это заставляет препроцессор
рассматривать комментарии как самостоятельные токены. Например, комментарии, появляющиеся в
начало того, что было бы строкой директивы, привело бы к превращению этой строки в
обычная исходная строка, так как первый токен в строке больше не является #.

-CC Не отбрасывайте комментарии, в том числе при раскрытии макроса. Это похоже на -C, Кроме
что комментарии, содержащиеся в макросах, также передаются в выходной файл, где
макрос расширен.

Помимо побочных эффектов -C вариант, -CC опция вызывает все C ++ - стиль
комментарии внутри макроса, которые будут преобразованы в комментарии в стиле C. Это сделано для предотвращения в будущем
использование этого макроса из-за непреднамеренного комментирования оставшейся части исходной строки.

Команда -CC опция обычно используется для поддержки комментариев lint.

-традиционный-cpp
Попробуйте имитировать поведение устаревших препроцессоров C, в отличие от ISO C
препроцессоры.

-триграфы
Обработка последовательностей триграфов.

-переназначить
Включите специальный код для работы с файловыми системами, которые разрешают только очень короткие файлы
имена, такие как MS-DOS.

--Помогите
--target-помощь
Напечатайте текст, описывающий все параметры командной строки, вместо предварительной обработки чего-либо.

-v Подробный режим. Распечатайте номер версии GNU CPP в начале выполнения и
сообщить окончательную форму пути включения.

-H Выведите имя каждого используемого файла заголовка в дополнение к другим обычным действиям. Каждый
имя выделено, чтобы показать, насколько глубоко #включают стек это есть. Предварительно скомпилированный заголовок
файлы также распечатываются, даже если они признаны недействительными; недействительный предварительно скомпилированный
заголовочный файл печатается с ...Икс и действительный с ! ... .

-версия
--версия
Распечатайте номер версии GNU CPP. С одним тире переходите к предварительной обработке как обычно.
С двумя дефисами немедленно выйти.

ОКРУЖАЮЩАЯ СРЕДА


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

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

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
Значение каждой переменной представляет собой список каталогов, разделенных специальным символом,
" У аборигенов PATH, в котором нужно искать файлы заголовков. Особый персонаж,
PATH_SEPARATOR зависит от цели и определяется во время сборки GCC. Для Microsoft
Для целей Windows это точка с запятой, а почти для всех остальных целей - точка с запятой.
двоеточие.

CPATH указывает список каталогов для поиска, как если бы он был указан с помощью -I, Но
после любых путей, указанных с -I параметры в командной строке. Эта переменная среды
используется независимо от того, на каком языке выполняется предварительная обработка.

Остальные переменные среды применяются только при предварительной обработке конкретного
язык указан. Каждый указывает список каталогов для поиска, как если бы
указано с -система, но после любых путей, заданных с -система варианты на
командная строка.

Во всех этих переменных пустой элемент инструктирует компилятор искать его текущий
рабочий каталог. Пустые элементы могут появляться в начале или в конце пути. Для
например, если значение CPATH это ": / special / include", которое имеет тот же эффект, что и
-I. -I / special / include.

ЗАВИСИМОСТИ_OUTPUT
Если эта переменная установлена, ее значение указывает, как выводить зависимости для Make на основе
для несистемных заголовочных файлов, обрабатываемых компилятором. Файлы системных заголовков
игнорируется в выводе зависимости.

Значение ЗАВИСИМОСТИ_OUTPUT может быть просто именем файла, и в этом случае правила создания
записываются в этот файл, угадывая целевое имя из имени исходного файла. Или
значение может иметь форму файл цель, в этом случае правила записываются в файл файл
через цель как целевое имя.

Другими словами, эта переменная среды эквивалентна объединению параметров -MM
и , с необязательным -MT переключатель тоже.

SUNPRO_DEPENDENCIES
Эта переменная такая же, как ЗАВИСИМОСТИ_OUTPUT (см. выше), за исключением того, что система
файлы заголовков не игнорируются, поэтому подразумевается -M , а не -MM. Тем не менее,
зависимость от основного входного файла опущена.

Используйте cpp-5 онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    oStorybook
    oStorybook
    oСборник рассказов l'outil privil�gi� des
    �crivains. ВНИМАНИЕ : voir sur
    http://ostorybook.tuxfamily.org/v5/
    --en_RU oStorybook правильный инструмент для
    писатели. ВНИМАНИЕ...
    Скачать oStorybook
  • 2
    Асусврт-Мерлин
    Асусврт-Мерлин
    Asuswrt-Merlin является сторонним поставщиком
    прошивка для выбора беспроводной сети Asus
    маршрутизаторы. На основе прошивки Asuswrt
    Разработанный Asus, он содержит твики, новые
    особенности и ...
    Скачать Asuswrt-Merlin
  • 3
    Atom
    Atom
    Atom - это текстовый редактор,
    современный, доступный и полнофункциональный.
    Его также легко настроить - вы
    может настроить его на что угодно и быть
    способен ...
    Скачать Atom
  • 4
    Осу!
    Осу!
    Осу! это простая ритм-игра с колодцем
    продуманная кривая обучения для игроков
    всех уровней мастерства. Один из великих
    аспекты Осу! в том, что это
    сообщество-доктор...
    Скачать Осу!
  • 5
    LIBPNG: справочная библиотека PNG
    LIBPNG: справочная библиотека PNG
    Справочная библиотека для поддержки
    Формат Portable Network Graphics (PNG).
    Аудитория: Разработчики. Программирование
    Язык: C. Это приложение, которое
    также может ...
    Скачать LIBPNG: справочная библиотека PNG
  • 6
    Металлоискатель на базе RP2040
    Металлоискатель на базе RP2040
    На основе платы Raspberry Pi Pico это
    металлоискатель включен в импульсный
    категория индукционных металлоискателей, с
    хорошо известные преимущества и недостатки.
    RP ...
    Скачать Металлоискатель на базе RP2040
  • Больше »

Команды Linux

Ad