Компилятор 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)