Spec-Zone.ru › GCC 15

Краткое содержание

В этом файле описывается использование компиляторов GNU.

Авторское право © 1988-2025 Free Software Foundation, Inc.

Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями GNU Free Documentation License версии 1.3 или любой более поздней версии, опубликованной Free Software Foundation; неизменяемые разделы — «Финансирование свободного программного обеспечения», текст на передней обложке — (a) (см. ниже), а текст на задней обложке — (b) (см. ниже). Копия лицензии включена в раздел «GNU Free Documentation License».

(a) Текст FSF для передней обложки:

Руководство GNU

(b) Текст FSF для задней обложки:

Вы можете свободно копировать и изменять это руководство GNU, как и программное обеспечение GNU. Копии, опубликованные Free Software Foundation, помогают финансировать разработку GNU.

  • 1 Языки программирования, поддерживаемые GCC
  • 2 Стандарты языков, поддерживаемые GCC
  • 3 Параметры командной строки GCC
  • 4 Поведение C, определяемое реализацией
  • 5 Поведение C++, определяемое реализацией
  • 6 Расширения семейства языков C
  • 7 Встроенные функции, предоставляемые GCC
  • 8 Расширения языка C++
  • 9 Возможности GNU Objective-C
  • 10 Бинарная совместимость
  • 11 gcov — программа анализа покрытия тестами
  • 12 gcov-tool — автономный инструмент обработки профилей Gcda
  • 13 gcov-dump — автономный инструмент выгрузки профилей Gcda и Gcno
  • 14 lto-dump — инструмент выгрузки объектных файлов LTO.
  • 15 Известные причины проблем с GCC
  • 16 Сообщение об ошибках
  • 17 Как получить помощь по GCC
  • 18 Участие в разработке GCC
  • Финансирование свободного программного обеспечения
  • Проект GNU и GNU/Linux
  • GNU General Public License
  • GNU Free Documentation License
  • Участники разработки GCC
  • Приложение A. Указатели

Содержание

  • 1 Языки программирования, поддерживаемые GCC
  • 2 Стандарты языков, поддерживаемые GCC
    • 2.1 Язык C
    • 2.2 Язык C++
    • 2.3 Языки Objective-C и Objective-C++
    • 2.4 Язык COBOL
    • 2.5 Язык Go
    • 2.6 Язык D
    • 2.7 Язык Modula-2
    • 2.8 Ссылки на другие языки
  • 3 Параметры командной строки GCC
    • 3.1 Краткое описание параметров
    • 3.2 Параметры, управляющие типом выходных данных
    • 3.3 Компиляция программ на C++
    • 3.4 Параметры, управляющие диалектом C
    • 3.5 Параметры, управляющие диалектом C++
    • 3.6 Параметры, управляющие диалектами Objective-C и Objective-C++
    • 3.7 Параметры, управляющие OpenMP и OpenACC
    • 3.8 Параметры управления форматированием диагностических сообщений
    • 3.9 Параметры включения или подавления предупреждений
    • 3.10 Параметры управления статическим анализом
    • 3.11 Параметры отладки программы
    • 3.12 Параметры управления оптимизацией
    • 3.13 Параметры инструментирования программы
    • 3.14 Параметры управления препроцессором
    • 3.15 Передача параметров ассемблеру
    • 3.16 Параметры компоновки
    • 3.17 Параметры поиска каталогов
    • 3.18 Параметры соглашений о генерации кода
    • 3.19 Параметры разработчика GCC
    • 3.20 Параметры, зависящие от целевой машины
      • 3.20.1 Параметры AArch64
        • 3.20.1.1 Модификаторы возможностей -march и -mcpu
      • 3.20.2 Параметры Adapteva Epiphany
      • 3.20.3 Параметры AMD GCN
      • 3.20.4 Параметры ARC
      • 3.20.5 Параметры ARM
      • 3.20.6 Параметры AVR
        • 3.20.6.1 Параметры оптимизации AVR
        • 3.20.6.2 EIND и устройства с объемом Flash более 128 КиБ
        • 3.20.6.3 Работа со специальными функциональными регистрами RAMPD, RAMPX, RAMPY и RAMPZ
        • 3.20.6.4 Встроенные макросы AVR
        • 3.20.6.5 Внутренние параметры AVR
      • 3.20.7 Параметры Blackfin
      • 3.20.8 Параметры C6X
      • 3.20.9 Параметры CRIS
      • 3.20.10 Параметры C-SKY
      • 3.20.11 Параметры Cygwin и MinGW
      • 3.20.12 Параметры Darwin
      • 3.20.13 Параметры DEC Alpha
      • 3.20.14 Параметры eBPF
      • 3.20.15 Параметры FR30
      • 3.20.16 Параметры FT32
      • 3.20.17 Параметры FRV
      • 3.20.18 Параметры GNU/Linux
      • 3.20.19 Параметры H8/300
      • 3.20.20 Параметры HPPA
      • 3.20.21 Параметры IA-64
      • 3.20.22 Параметры LM32
      • 3.20.23 Параметры LoongArch
      • 3.20.24 Параметры M32C
      • 3.20.25 Параметры M32R/D
      • 3.20.26 Параметры M680x0
      • 3.20.27 Параметры MCore
      • 3.20.28 Параметры MicroBlaze
      • 3.20.29 Параметры MIPS
      • 3.20.30 Параметры MMIX
      • 3.20.31 Параметры MN10300
      • 3.20.32 Параметры Moxie
      • 3.20.33 Параметры MSP430
      • 3.20.34 Параметры NDS32
      • 3.20.35 Параметры Nvidia PTX
      • 3.20.36 Параметры OpenRISC
      • 3.20.37 Параметры PDP-11
      • 3.20.38 Параметры PowerPC
      • 3.20.39 Параметры PRU
      • 3.20.40 Параметры RISC-V
      • 3.20.41 Параметры RL78
      • 3.20.42 Параметры IBM RS/6000 и PowerPC
      • 3.20.43 Параметры RX
      • 3.20.44 Параметры S/390 и zSeries
      • 3.20.45 Параметры SH
      • 3.20.46 Параметры Solaris 2
      • 3.20.47 Параметры SPARC
      • 3.20.48 Параметры System V
      • 3.20.49 Параметры V850
      • 3.20.50 Параметры VAX
      • 3.20.51 Параметры Visium
      • 3.20.52 Параметры VMS
      • 3.20.53 Параметры VxWorks
      • 3.20.54 Параметры x86
      • 3.20.55 Параметры x86 Windows
      • 3.20.56 Параметры Xstormy16
      • 3.20.57 Параметры Xtensa
      • 3.20.58 Параметры zSeries
    • 3.21 Указание дочерних процессов и передаваемых им параметров
    • 3.22 Переменные среды, влияющие на GCC
    • 3.23 Использование предкомпилированных заголовков
    • 3.24 Модули C++
      • 3.24.1 Сопоставитель модулей
      • 3.24.2 Препроцессинг модулей
      • 3.24.3 Скомпилированный интерфейс модуля
  • 4 Поведение C, определяемое реализацией
    • 4.1 Трансляция
    • 4.2 Среда
    • 4.3 Идентификаторы
    • 4.4 Символы
    • 4.5 Целые числа
    • 4.6 Числа с плавающей точкой
    • 4.7 Массивы и указатели
    • 4.8 Рекомендации
    • 4.9 Структуры, объединения, перечисления и битовые поля
    • 4.10 Квалификаторы
    • 4.11 Деклараторы
    • 4.12 Операторы
    • 4.13 Директивы препроцессора
    • 4.14 Функции библиотеки
    • 4.15 Архитектура
    • 4.16 Поведение, зависящее от локали
  • 5 Поведение C++, определяемое реализацией
    • 5.1 Поведение, поддержка которого зависит от условий
    • 5.2 Обработка исключений
  • 6 Расширения семейства языков C
    • 6.1 Дополнительные числовые типы
      • 6.1.1 128-битные целые числа
      • 6.1.2 Целые числа двойной разрядности
      • 6.1.3 Комплексные числа
      • 6.1.4 Дополнительные типы с плавающей запятой
      • 6.1.5 Числа с плавающей запятой половинной точности
      • 6.1.6 Десятичные типы с плавающей запятой
      • 6.1.7 Типы с фиксированной точкой
    • 6.2 Расширения массивов, объединений и структур
      • 6.2.1 Массивы переменной длины
      • 6.2.2 Массивы нулевой длины
      • 6.2.3 Структуры без элементов
      • 6.2.4 Объединения с гибкими членами-массивами
      • 6.2.5 Структуры, содержащие только гибкие члены-массивы
      • 6.2.6 Именованные поля структуры и объединения
      • 6.2.7 Приведение к типу объединения
      • 6.2.8 К массивам, не являющимся lvalue, можно применять индексацию
      • 6.2.9 Неконстантные инициализаторы
      • 6.2.10 Составные литералы
      • 6.2.11 Именованные инициализаторы
    • 6.3 Именованные адресные пространства
      • 6.3.1 Именованные адресные пространства AVR
      • 6.3.2 Именованные адресные пространства M32C
      • 6.3.3 Именованные адресные пространства PRU
      • 6.3.4 Именованные адресные пространства RL78
      • 6.3.5 Именованные адресные пространства x86
    • 6.4 Атрибуты, специфичные для GCC
      • 6.4.1 Объявление атрибутов функций
        • 6.4.1.1 Общие атрибуты функций
        • 6.4.1.2 Атрибуты функций AArch64
        • 6.4.1.3 Атрибуты функций AMD GCN
        • 6.4.1.4 Атрибуты функций ARC
        • 6.4.1.5 Атрибуты функций ARM
        • 6.4.1.6 Атрибуты функций AVR
        • 6.4.1.7 Атрибуты функций Blackfin
        • 6.4.1.8 Атрибуты функций BPF
        • 6.4.1.9 Атрибуты функций C-SKY
        • 6.4.1.10 Атрибуты функций Epiphany
        • 6.4.1.11 Атрибуты функций H8/300
        • 6.4.1.12 Атрибуты функций IA-64
        • 6.4.1.13 Атрибуты функций LoongArch
        • 6.4.1.14 Атрибуты функций M32C
        • 6.4.1.15 Атрибуты функций M32R/D
        • 6.4.1.16 Атрибуты функций m68k
        • 6.4.1.17 Атрибуты функций MCORE
        • 6.4.1.18 Атрибуты функций MicroBlaze
        • 6.4.1.19 Атрибуты функций Microsoft Windows
        • 6.4.1.20 Атрибуты функций MIPS
        • 6.4.1.21 Атрибуты функций MSP430
        • 6.4.1.22 Атрибуты функций NDS32
        • 6.4.1.23 Атрибуты функций Nvidia PTX
        • 6.4.1.24 Атрибуты функций PowerPC
        • 6.4.1.25 Атрибуты функций RISC-V
        • 6.4.1.26 Атрибуты функций RL78
        • 6.4.1.27 Атрибуты функций RX
        • 6.4.1.28 Атрибуты функций S/390
        • 6.4.1.29 Атрибуты функций SH
        • 6.4.1.30 Атрибуты функций Symbian OS
        • 6.4.1.31 Атрибуты функций V850
        • 6.4.1.32 Атрибуты функций Visium
        • 6.4.1.33 Атрибуты функций x86
        • 6.4.1.34 Атрибуты функций Xstormy16
      • 6.4.2 Задание атрибутов переменных
        • 6.4.2.1 Общие атрибуты переменных
        • 6.4.2.2 Атрибуты переменных ARC
        • 6.4.2.3 Атрибуты переменных AVR
        • 6.4.2.4 Атрибуты переменных Blackfin
        • 6.4.2.5 Атрибуты переменных H8/300
        • 6.4.2.6 Атрибуты переменных IA-64
        • 6.4.2.7 Атрибуты переменных LoongArch
        • 6.4.2.8 Атрибуты переменных M32R/D
        • 6.4.2.9 Атрибуты переменных Microsoft Windows
        • 6.4.2.10 Атрибуты переменных MSP430
        • 6.4.2.11 Атрибуты переменных Nvidia PTX
        • 6.4.2.12 Атрибуты переменных PowerPC
        • 6.4.2.13 Атрибуты переменных RL78
        • 6.4.2.14 Атрибуты переменных V850
        • 6.4.2.15 Атрибуты переменных x86
        • 6.4.2.16 Атрибуты переменных Xstormy16
      • 6.4.3 Задание атрибутов типов
        • 6.4.3.1 Общие атрибуты типов
        • 6.4.3.2 Атрибуты типов ARC
        • 6.4.3.3 Атрибуты типов ARM
        • 6.4.3.4 Атрибуты типов BPF
        • 6.4.3.5 Атрибуты типов PowerPC
        • 6.4.3.6 Атрибуты типов x86
      • 6.4.4 Атрибуты меток
      • 6.4.5 Атрибуты элементов перечисления
      • 6.4.6 Атрибуты операторов
      • 6.4.7 Синтаксис атрибутов
    • 6.5 Прагмы, принимаемые GCC
      • 6.5.1 Прагмы AArch64
      • 6.5.2 Прагмы ARM
      • 6.5.3 Прагмы LoongArch
      • 6.5.4 Прагмы M32C
      • 6.5.5 Прагмы PRU
      • 6.5.6 Прагмы RS/6000 и PowerPC
      • 6.5.7 Прагмы S/390
      • 6.5.8 Прагмы Darwin
      • 6.5.9 Прагмы Solaris
      • 6.5.10 Прагмы переименования символов
      • 6.5.11 Прагмы размещения структур
      • 6.5.12 Прагмы слабых символов
      • 6.5.13 Диагностические прагмы
      • 6.5.14 Прагмы видимости
      • 6.5.15 Прагмы Push/Pop макросов
      • 6.5.16 Прагмы параметров для отдельных функций
      • 6.5.17 Прагмы для отдельных циклов
    • 6.6 Локальное хранилище потока
      • 6.6.1 Изменения ISO/IEC 9899:1999 для локального хранилища потока
      • 6.6.2 Изменения ISO/IEC 14882:1998 для локального хранилища потока
    • 6.7 OpenMP
    • 6.8 OpenACC
    • 6.9 Встроенная функция работает так же быстро, как макрос
    • 6.10 Когда происходит обращение к volatile-объекту?
    • 6.11 Как использовать встроенный язык ассемблера в коде C
      • 6.11.1 Базовый asm — инструкции ассемблера без операндов
      • 6.11.2 Расширенный asm — инструкции ассемблера с операндами-выражениями C
        • 6.11.2.1 Volatile
        • 6.11.2.2 Шаблон ассемблера
        • 6.11.2.3 Выходные операнды
        • 6.11.2.4 Выходные операнды флагов
        • 6.11.2.5 Входные операнды
        • 6.11.2.6 Повреждаемые регистры и временные регистры
        • 6.11.2.7 Метки goto
        • 6.11.2.8 Общие модификаторы операндов
        • 6.11.2.9 Модификаторы операндов AArch64
        • 6.11.2.10 Модификаторы операндов x86
        • 6.11.2.11 Операнды ассемблера x86 с плавающей запятой asm
        • 6.11.2.12 Модификаторы операндов MSP430
        • 6.11.2.13 Модификаторы операндов LoongArch
        • 6.11.2.14 Модификаторы операндов RISC-V
        • 6.11.2.15 Модификаторы операндов SH
      • 6.11.3 Ограничения для операндов asm
        • 6.11.3.1 Простые ограничения
        • 6.11.3.2 Ограничения с несколькими альтернативами
        • 6.11.3.3 Символы-модификаторы ограничений
        • 6.11.3.4 Ограничения для конкретных машин
      • 6.11.4 Константные выражения C++11 вместо строковых литералов
      • 6.11.5 Управление именами, используемыми в коде ассемблера
      • 6.11.6 Переменные в указанных регистрах
        • 6.11.6.1 Определение глобальных регистровых переменных
        • 6.11.6.2 Задание регистров для локальных переменных
      • 6.11.7 Размер asm
    • 6.12 Другие расширения синтаксиса C
      • 6.12.1 Операторы и объявления в выражениях
      • 6.12.2 Локально объявленные метки
      • 6.12.3 Метки как значения
      • 6.12.4 Вложенные функции
      • 6.12.5 Ссылка на тип с помощью typeof
      • 6.12.6 Поддержка offsetof
      • 6.12.7 Определение выравнивания функций, типов или переменных
      • 6.12.8 Расширения объявлений типа enum
      • 6.12.9 Поддержка типа _Bool
      • 6.12.10 Макросы с переменным числом аргументов.
      • 6.12.11 Условные выражения с пропущенными операндами
      • 6.12.12 Диапазоны case
      • 6.12.13 Смешанные объявления, метки и код
      • 6.12.14 Комментарии в стиле C++
      • 6.12.15 Несколько более свободные правила для экранированных символов новой строки
      • 6.12.16 Шестнадцатеричные числа с плавающей запятой
      • 6.12.17 Двоичные константы с префиксом ‘0b’
      • 6.12.18 Знаки доллара в именах идентификаторов
      • 6.12.19 Символ ESC в константах
      • 6.12.20 Необработанные строковые литералы
      • 6.12.21 Альтернативные ключевые слова
      • 6.12.22 Имена функций в виде строк
    • 6.13 Расширения семантики C
      • 6.13.1 Прототипы и определения функций в старом стиле
      • 6.13.2 Арифметика над указателями void и указателями на функции
      • 6.13.3 Аргументы-указатели в функциях с переменным числом аргументов
      • 6.13.4 Указатели на массивы с квалификаторами работают ожидаемым образом
      • 6.13.5 Функции const и volatile
  • 7 Встроенные функции, предоставляемые GCC
    • 7.1 Встроенные функции для функций библиотеки C
    • 7.2 Дополнительные встроенные функции для числовых операций
      • 7.2.1 Встроенные функции для форматов с плавающей точкой
      • 7.2.2 Встроенные функции для операций с битами
      • 7.2.3 Встроенные функции для перестановки байтов
      • 7.2.4 Встроенные функции CRC
      • 7.2.5 Встроенные функции для арифметических операций с проверкой переполнения
    • 7.3 Встроенные функции для выделения памяти в стеке
    • 7.4 Нелокальные переходы goto
    • 7.5 Создание вызовов функций
    • 7.6 Получение адреса возврата или кадра функции
    • 7.7 Внутренние интерфейсы очистки стека
    • 7.8 Использование векторных инструкций через встроенные функции
    • 7.9 Встроенные функции для атомарного доступа к памяти
      • 7.9.1 Встроенные функции для атомарных операций с учетом модели памяти
      • 7.9.2 Устаревшие встроенные функции __sync для атомарного доступа к памяти
    • 7.10 Проверка размера объекта
      • 7.10.1 Встроенные функции проверки размера объекта
      • 7.10.2 Проверка размера объекта и защита исходного кода
        • 7.10.2.1 Проверка функций форматированного вывода
    • 7.11 Встроенные функции для выделения и освобождения памяти в C++
    • 7.12 Другие встроенные функции, предоставляемые GCC
    • 7.13 Встроенные функции для конкретных целевых машин
      • 7.13.1 Встроенные функции AArch64
      • 7.13.2 Встроенные функции Alpha
      • 7.13.3 Встроенные функции ARC
      • 7.13.4 Встроенные функции ARC SIMD
      • 7.13.5 Встроенные функции ARM iWMMXt
      • 7.13.6 Расширения языка C для ARM (ACLE)
      • 7.13.7 Внутренние функции состояния и управления плавающей точкой ARM
      • 7.13.8 Расширения безопасности ARM ARMv8-M
      • 7.13.9 Встроенные функции AVR
      • 7.13.10 Встроенные функции Blackfin
      • 7.13.11 Встроенные функции BPF
      • 7.13.12 Встроенные функции FR-V
        • 7.13.12.1 Типы аргументов
        • 7.13.12.2 Целочисленные функции с прямым отображением
        • 7.13.12.3 Мультимедийные функции с прямым отображением
        • 7.13.12.4 Функции прямого чтения и записи
        • 7.13.12.5 Другие встроенные функции
      • 7.13.13 Базовые встроенные функции LoongArch
      • 7.13.14 Векторные внутренние функции LoongArch SX
      • 7.13.15 Векторные внутренние функции LoongArch ASX
      • 7.13.16 Встроенные функции MIPS DSP
      • 7.13.17 Поддержка формата Paired-Single в MIPS
      • 7.13.18 Встроенные функции MIPS Loongson
        • 7.13.18.1 Арифметика Paired-Single
        • 7.13.18.2 Встроенные функции Paired-Single
        • 7.13.18.3 Встроенные функции MIPS-3D
      • 7.13.19 Поддержка архитектуры MIPS SIMD (MSA)
        • 7.13.19.1 Встроенные функции архитектуры MIPS SIMD
      • 7.13.20 Другие встроенные функции MIPS
      • 7.13.21 Встроенные функции MSP430
      • 7.13.22 Встроенные функции NDS32
      • 7.13.23 Встроенные функции Nvidia PTX
      • 7.13.24 Основные встроенные функции PowerPC
        • 7.13.24.1 Основные встроенные функции PowerPC, доступные во всех конфигурациях
        • 7.13.24.2 Основные встроенные функции PowerPC, доступные в ISA 2.05
        • 7.13.24.3 Основные встроенные функции PowerPC, доступные в ISA 2.06
        • 7.13.24.4 Основные встроенные функции PowerPC, доступные в ISA 2.07
        • 7.13.24.5 Основные встроенные функции PowerPC, доступные в ISA 3.0
        • 7.13.24.6 Основные встроенные функции PowerPC, доступные в ISA 3.1
      • 7.13.25 Встроенные функции PowerPC AltiVec/VSX
        • 7.13.25.1 Встроенные функции PowerPC AltiVec в ISA 2.05
        • 7.13.25.2 Встроенные функции PowerPC AltiVec, доступные в ISA 2.06
        • 7.13.25.3 Встроенные функции PowerPC AltiVec, доступные в ISA 2.07
        • 7.13.25.4 Встроенные функции PowerPC AltiVec, доступные в ISA 3.0
        • 7.13.25.5 Встроенные функции PowerPC AltiVec, доступные в ISA 3.1
      • 7.13.26 Встроенные функции аппаратной транзакционной памяти PowerPC
        • 7.13.26.1 Низкоуровневые встроенные функции PowerPC HTM
        • 7.13.26.2 Высокоуровневые встроенные функции PowerPC HTM
      • 7.13.27 Функции атомарных операций с памятью PowerPC
      • 7.13.28 Встроенные функции ускорения умножения матриц PowerPC
      • 7.13.29 Встроенные функции PRU
      • 7.13.30 Встроенные функции RISC-V
      • 7.13.31 Векторные внутренние функции RISC-V
      • 7.13.32 Встроенные функции CORE-V
      • 7.13.33 Встроенные функции RX
      • 7.13.34 Встроенные функции S/390 System z
      • 7.13.35 Встроенные функции SH
      • 7.13.36 Встроенные функции SPARC VIS
      • 7.13.37 Встроенные функции TI C6X
      • 7.13.38 Встроенные функции x86
      • 7.13.39 Внутренние функции транзакционной памяти x86
      • 7.13.40 Внутренние функции защиты потока управления x86
  • 8 Расширения языка C++
    • 8.1 Когда происходит обращение к volatile-объекту C++?
    • 8.2 Ограничение алиасинга указателей
    • 8.3 Неопределенное связывание
    • 8.4 Прагмы интерфейса и реализации C++
    • 8.5 Где находится шаблон?
    • 8.6 Получение указателя на функцию из связанного указателя на функцию-член
    • 8.7 Атрибуты переменных, функций и типов, специфичные для C++
    • 8.8 Многоверсионность функций
    • 8.9 Характеристики типов
    • 8.10 Устаревшие возможности
    • 8.11 Обратная совместимость
  • 9 Возможности GNU Objective-C
    • 9.1 API среды выполнения GNU Objective-C
      • 9.1.1 Современный API среды выполнения GNU Objective-C
      • 9.1.2 Традиционный API среды выполнения GNU Objective-C
    • 9.2 +load: выполнение кода до main
      • 9.2.1 Что можно и чего нельзя делать в +load
    • 9.3 Кодирование типов
      • 9.3.1 Устаревшее кодирование типов
      • 9.3.2 @encode
      • 9.3.3 Сигнатуры методов
    • 9.4 Сборка мусора
    • 9.5 Константные строковые объекты
    • 9.6 compatibility_alias
    • 9.7 Исключения
    • 9.8 Синхронизация
    • 9.9 Быстрое перечисление
      • 9.9.1 Использование быстрого перечисления
      • 9.9.2 Синтаксис быстрого перечисления в стиле C99
      • 9.9.3 Подробные сведения о быстром перечислении
      • 9.9.4 Протокол быстрого перечисления
    • 9.10 Обмен сообщениями со средой выполнения GNU Objective-C
      • 9.10.1 Динамическая регистрация методов
      • 9.10.2 Перехватчик переадресации
  • 10 Двоичная совместимость
  • 11 gcov — программа проверки покрытия тестами
    • 11.1 Введение в gcov
    • 11.2 Запуск gcov
    • 11.3 Использование gcov с оптимизацией GCC
    • 11.4 Краткое описание файлов данных gcov
    • 11.5 Перемещение файлов данных для поддержки кросс-профилирования
    • 11.6 Профилирование и покрытие тестами в автономных средах
      • 11.6.1 Обзор
      • 11.6.2 Практическое руководство
      • 11.6.3 Особенности инициализации системы
  • 12 gcov-tool — автономный инструмент обработки профилей Gcda
    • 12.1 Введение в gcov-tool
    • 12.2 Запуск gcov-tool
  • 13 gcov-dump — автономный инструмент для вывода профилей Gcda и Gcno
    • 13.1 Введение в gcov-dump
    • 13.2 Запуск gcov-dump
  • 14 lto-dump — инструмент для вывода объектных файлов LTO.
    • 14.1 Введение в lto-dump
    • 14.2 Запуск lto-dump
  • 15 Известные причины проблем с GCC
    • 15.1 Реальные ошибки, которые мы еще не исправили
    • 15.2 Взаимодействие
    • 15.3 Несовместимости GCC
    • 15.4 Фиксированные заголовочные файлы
    • 15.5 Стандартные библиотеки
    • 15.6 Разочарования и недоразумения
    • 15.7 Распространенные заблуждения о GNU C++
      • 15.7.1 Объявление и определение статических членов
      • 15.7.2 Поиск имен, шаблоны и доступ к членам базовых классов
      • 15.7.3 Временные объекты могут исчезнуть раньше, чем вы ожидаете
      • 15.7.4 Неявное копирующее присваивание для виртуальных базовых классов
    • 15.8 Некоторые изменения, которые мы не хотим вносить
    • 15.9 Предупреждения и сообщения об ошибках
  • 16 Сообщение об ошибках
    • 16.1 Вы обнаружили ошибку?
    • 16.2 Как и куда сообщать об ошибках
  • 17 Как получить помощь по GCC
  • 18 Участие в разработке GCC
  • Финансирование свободного программного обеспечения
  • Проект GNU и GNU/Linux
  • Стандартная общественная лицензия GNU
  • Лицензия GNU на свободную документацию
    • ДОПОЛНЕНИЕ: как применять эту лицензию к вашим документам
  • Участники разработки GCC
  • Приложение A Указатели
    • A.1 Указатель параметров
    • A.2 Указатель понятий и символов

Введение

В этом руководстве описано использование компиляторов GNU, их возможности и несовместимости, а также порядок сообщения об ошибках. Руководство соответствует версии 15.3.0 компиляторов (GCC). Внутреннее устройство компиляторов GNU, включая сведения о переносе на новые целевые платформы и о написании интерфейсных модулей для новых языков, описано в отдельном руководстве. См. раздел Введение в руководстве «Внутреннее устройство коллекции компиляторов GNU (GCC)».

  • Языки программирования, поддерживаемые GCC
  • Языковые стандарты, поддерживаемые GCC
  • Параметры командной строки GCC
  • Поведение языка C, определяемое реализацией
  • Поведение языка C++, определяемое реализацией
  • Расширения семейства языков C
  • Встроенные функции, предоставляемые GCC
  • Расширения языка C++
  • Возможности GNU Objective-C
  • Двоичная совместимость
  • gcov — программа проверки покрытия тестами
  • gcov-tool — автономный инструмент обработки профилей Gcda
  • gcov-dump — автономный инструмент для вывода профилей Gcda и Gcno
  • lto-dump — инструмент для вывода объектных файлов LTO.
  • Известные причины проблем с GCC
  • Сообщение об ошибках
  • Как получить помощь по GCC
  • Участие в разработке GCC
  • Финансирование свободного программного обеспечения
  • Проект GNU и GNU/Linux
  • Стандартная общественная лицензия GNU
  • Лицензия GNU на свободную документацию
  • Участники разработки GCC
  • Указатели

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API