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

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

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

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

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

g++ -Wall source.cpp

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

g++ -std=c++17 source.cpp

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

g++ -std=c++20 source.c

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

g++ -std=c++11 -Wall -pedantic app.cpp
g++ -std=c++14 -Wall -pedantic app.cpp
g++ -std=c++17 -Wall -pedantic app.cpp
g++ -std=c++20 -Wall -pedantic app.cpp

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

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

g++ source.cpp & ./a.out

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

g++ -std=c++20 -Wall -pedantic app.cpp -o app & app

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

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

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