Согласно документации GCC ( "3.11 Опции, управляющие препроцессором" ), переключатель -D
определяет макросы XOPEN_SOURCE
и _BSD_SOURCE
со значениями 500
и 1
соответственно , Как будто у вас есть этот код в начале всех исходных файлов, которые вы передаете в GCC:
#define XOPEN_SOURCE 500
#define _BSD_SOURCE 1
Сценарии сборки обычно используют возможность компилятора «вставлять» подобные макросы для «связи» с исходным кодом сведений о целевой платформе (например, версия операционной системы).
"Противоположный" параметр командной строки для -D
- -U
, что #undef
s макрос.
Большинство (если не все) современных компиляторов C / C ++ содержат аналогичные ключи. Например, компиляторы Visual C ++ принимают переключатель компилятора /D
, который по сути служит той же цели, что и переключатель -D
GCC.
Для дальнейшего использования индекс опции GCC отлично подходит, если вам нужно найти переключатели компилятора для компилятора GCC.