Настройка параметров компиляции

Последнее обновление: 25.07.2023

Параметры компилятора gcc

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

Для компиляции с предупреждениями применяется флаг -Wall:

gcc -Wall source.c

Есть разные версии стандарта языка Си, и каждый из них может добавлять дополнительный функционал, который мы, возможно, захотим использовать в программе. С помощью флага -std= можно указать конкретный стандарт, добавив c99, c11 или c17. Например, для компиляции в стандарт c99 нужно написать:

gcc -std=c99 source.c

Аналогично для компиляции в стандарт C11 используется команда:

gcc -std=c11 source.c

Чтобы гарантировать, что программа будет строго соответствовать определенному стандарту, можно указать флаг -pedantic

gcc -std=c99 -Wall -pedantic source.c
gcc -std=c11 -Wall -pedantic source.c
gcc -std=c17 -Wall -pedantic source.c
gcc -std=c23 -Wall -pedantic source.c

В этом случае компилятор будет генерировать предупреждения, если код не соответствует правилам стандарта.

Для того, чтобы автоматически запустить приложение после компиляции, можно использовать следующую команду:

gcc source.c & ./a.out

Можно налепить в одну команду различные опции:

gcc -std=c17 -Wall -pedantic app.c -o app.exe & app

Опция -S позволяет сгенерировать файл с ассемблерным кодом:

gcc app.c -S

В данном случае по содержимому app.c будет сгенерирован файл, который называется как и исходный файл, только имеет расширение .s, то есть в данном случае будет сгенерирован файл app.s. Этот файл будет содержать код на ассемблере, причем в качестве синтаксиса применяется синтаксис ассемблера GAS (ассемблера от GNU).

Параметры компилятора clang

Основные параметры компилятора Clang в ряде случаев повторяют параметры для gcc. Например, компиляция с помощью Clang под определенный стандарт с выводом ошибок:

clang -std=c17 -Wall -pedantic app.c -o app.exe & app.exe
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850