Язык программирования c++:
- высокоуровневый - компилируемый - статически типизированный - общего назначения
Как выбирать:
- стандарт C++ (98/11/14/17/20/...) - компилятор (gcc, msvc, clang)
Стандарты:
- синтаксис языка - семантика выражений (определяет что произойдёт если что то сделать) - состав стандартных библиотек
Стандарт не определяет:
- реализацию языка компилятором - уровни оптимизации (есть рекомендации) - последствия нарушения правил игры (undefined behavior) - некорректные конструкции - некорректные данные - нечто, в стандарте не описанное - например: двойной вызов delete - например: переполнение знакового целого - некоторые детали реализации (unspecified behavior) - несколько возможных вариантов - и все они корректны - и стандарт не говорит, какой предпочесть - например: порядок вычисления аргументов функций
Пример кода и сборка:
0. Создаем файл: vim hello_world.cpp ------------------- #includeint main () { std::cout << "Hello, world!" << std::endl; return 0; } ------------------- 1. Производим компиляцию: g++ hello_world.cpp -o hello -std=c++14 Где: g++ - компилятор hello_world.cpp - наш файл с кодом -o hello - наш бедующий бинарный файл -std=с++14 - версия языка c++
CMake
CMake - кроссплатформенная система автоматизации сборки - генерирует сборочные файлы - много возможностей Использование: 0. Описать свой проект в CMakeList.txt 1. cmake ${source_dir} 2. cmake --build . 3 cmake --build . --target install Пример файла CMakeList.txt: --------------------------- cmake_minimum_required(VERSION 3.5) - используемая версия cmake project(HelloWorld) - имя проекта set(HEADERS version.h - заголовочные файлы ) set(SOURCES hello_world.cpp - файл с кодом version.cpp - файл с кодом ) add_executable(hello_world ${HEADERS} ${SOURCES}) - действие - просим cmake собрать бинарник используя файлы с кодом (исходники) set_target_properties(hello_world PROPERTIES - как будем собирать? CXX_STANDART 14 - используем стандарт си++ не ниже 14 версии CXX_STANDART_REQUIRED ON - придерживаемся стандарту си++ --------------------------- Реальный пример сборки сборочных файлов: 0. Cоздаем директорию build в каталоге с кодом mkdir build 1. Переходим в каталог build cd build 2. Производим сборку cmake .. 3. После сборки выполняем ls, что бы увидеть что нам собрал cmake ls ------------------- CMakeCache.txt CMakeFiles cmake_install.cmake Makefile ------------------- 4. Собственно выполняем сборку нашего проекта !!! в windows проекты собираются в каталог Debug !!! в linux бинарные файлы будут лежать где собираем проект cmake --build .