Компилятор g++ флаги

Компилятор g++ флаги

Стандарты С++

  • -std=c++98 — C++98
  • -std=c++11  — C++11
  • -std=c++14  — C++14
  • -std=c++17  — C++17
  • -std=c++2a — C++20

Предупреждения

  • -Wall — Выводит большинство предупреждений
  • -Wfloat-equal — Предупреждает о не безопасном сравнении
  • -Wsign-conversion или -Wsign-promo — Предупреждения преобразования signed в unsigned (и обратно)
  • -Wold-style-cast — Выводит C Style преобразования типов
  • -Warray-bounds — Доступ за пределы массива
  • -Wdiv-by-zero — Предупреждать о делении на 0
  • -Wdouble-promotion — Предупреждает о преобразовании с float на double
  • -Wbool-compire — Предупреждение о сравнении int с bool

Сборка
Для сборки программы необходимо указать компилятору g++ файлы исходного кода, например команда g++ main.cpp скомпилирует исходный код файла main.cpp в исполняемый фаил a.out
(если компилятору не указать имя выходного файла то по умолчанию именем будет a.out)

-o <name> — Имя выходного файла
например: g++ -o myApp main.cpp скомпилирует фаил main.cpp в исполняемый фаил myexe.
Можно передавать несколько исходных файлов для сборки,
например: g++ -o myApp file1.cpp file2.cpp.

-c — Создание объектного файла
Для создания объектного файла необходимо указать компилятору ключи -c и -o:
Пример:  g++ -c -o main.o main.cpp,
данной командой компилятор g++ создает объектный фаил main.o из файла main.cpp

Для сборки программы из объектных файлов необходимо указать компилятору в качестве входных параметров не файлы исходного кода а объектные файлы:

g++ -o myexe foo.o main.o bar.o — создает программу из объектных файлов foo.o main.o bar.o

-I<include_path> — Указание каталога для поиска подключаемых файлов
Пример: g++ -o myexe -I/my/path/to/include main.cpp • -L<library_path>

-L<library_path> — Указание каталога для поиска библиотек •
-l<library> — Указание конкретной библиотеки для линковки

https://www.gnu.org/software/make/manual/make.pdf
функции для имен файлов на 91стр (103 стр pdf)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *