Модератор
Эксперт CЭксперт С++
5282 / 2369 / 342
Регистрация: 20.02.2013
Сообщений: 5,768
Записей в блоге: 20
1

Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

11.12.2016, 00:12. Показов 114618. Ответов 3

Author24 — интернет-сервис помощи студентам
Начнём с расстановки точек над некоторыми ё

Тема находится в процессе разработки.
  • эта тема создана для новичков, впервые столкнувшихся с тем, что код с форума, работающий у других форумчан, никак не желает запускаться
    .
  • среда разработки (IDE) и компилятор - это не одно и то же
    .
  • к одной и той же IDE можно подцепить разные компиляторы и разные системы сборки проектов

В этой теме я начну с рассмотрения четырёх наиболее популярных (на мой взгляд) на данный момент IDE:
...и трёх наиболее популярных компиляторов:
  • MSVC++ (так же известный как Visual C++, текущая версия на момент последнего редактирования этой статьи 14.37.32822, поставляемый в комплекте с MS Visual Studio 2022 версии 17.7.0)
    .
  • G++ (из коллекции компиляторов GCC [для операционных систем семейства Windows он же - MinGW], текущая версия на момент последнего редактирования этой статьи 13.2)
    .
  • LLVM Clang (или просто clang, текущая версия на момент последнего редактирования этой статьи 17.0.6)

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


Узнать какой стандарт актуален на данный момент можно здесь.

Если кто-то желает добавить информацию по другим IDE и другим компиляторам - милости прошу.

  1. Связка MS Visual Studio и VC++ compiler.
    .
    Вариант из разряда "всё включено". Скачал - и начал работать. Стандарт С++20 поддерживается, что называется, "из коробки", а так же поддерживаются отдельные фичи и из грядущего С++23. Подробности по поддержке стандарта тут.
    .
  2. Связка VS Code и g++ (GCC) compiler.
    .
    Вариант для тех, кто хочет что-то полегче, чем MS Visual Studio, но такое же красивое и удобное. По сути, VS Code - это просто текстовый редактор, но благодаря большой коллекции расширений (extensions) из него в несколько кликов можно сделать относительно легковесную IDE для многих популярных языков программирования, в том числе и для С++. Если говорить о расширениях, у меня установлены такие:
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    Вы можете поставить те, которые больше нравятся Вам.

    Компилятор можно прикрутить любой, какой у Вас есть (обычно под Linux это gcc или clang, а под Windows это MinGW, MSVC++ или clang).
    Если у Вас нет никакого компилятора, его надо поставить.

    В случае, если Вы работаете под Windows, установите компилятор MinGW с помощью msys2 и добавьте его в Path (переменные среды).

    Если работаете под Линукс, скажем, используете Ubuntu, откройте терминал и установите компилятор GCC и отладчик gdb такой командой:
    sudo apt install build-essential gdb -y

    Проверьте, что компилятор установлен:
    g++ --version

    В моём случае установлен GCC 13.1, у меня это выглядит так:
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)


    Для того, чтобы запускать сборку с кнопки (ставится с помощью расширений), стандарт прописываем в файле c_cpp_properties.json, который лежит в папке .vscode, а если такого файла нет, то его надо создать ручками. В моём случае (для Ubuntu 22.04 и g++) этот файл выглядит так:
    JSON
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    {
      "configurations": [
        {
          "name": "linux-gcc-x64",
          "includePath": [
            "${workspaceFolder}/**"
          ],
          "defines": [],
          "compilerPath": "/usr/bin/g++",
          "cStandard": "c17",
          "cppStandard": "c++20",
          "intelliSenseMode": "linux-gcc-x64"
        }
      ],
      "version": 4
    }
    Кроме этого надо добавить ещё два JSON-файла, один под названием tasks.json, другой под названием launch.json
    Вот как у меня выглядит tasks.json:
    JSON
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    {
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: g++ build active file",
                "command": "/usr/bin/g++",
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}",
                    ""
                ],
                "options": {
                    "cwd": "${fileDirname}"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "Task generated by Debugger."
            }
        ],
        "version": "2.0.0"
    }
    А вот как у меня выглядит файл launch.json:
    JSON
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "C/C++ Runner: Debug Session",
          "type": "cppdbg",
          "request": "launch",
          "args": [],
          "stopAtEntry": false,
          "externalConsole": false,
          "cwd": "/home/sourcerer/dev/c++/hello_cpp",
          "program": "/home/sourcerer/dev/c++/hello_cpp/helloworld",
          "MIMode": "gdb",
          "miDebuggerPath": "/usr/bin/gdb",
          "setupCommands": [
            {
              "description": "Enable pretty-printing for gdb",
              "text": "-enable-pretty-printing",
              "ignoreFailures": true
            }
          ]
        }
      ]
    }
    Вот как это должно выглядеть в итоге:
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)


    Подробные инструкции по настройке VS Code для Windows есть тут и тут.

    Если вы собираете свой проект в командной строке, то ничего этого не нужно. Просто указывайте нужные флаги компилятора в самой команде в терминале. У меня это выглядит так:
    Bash
    1
    
    g++ -Wextra -Wall -w -pedantic -std=c++20 main.cpp
    Запуск самой программы у меня выглядит так:
    Bash
    1
    
    ./a.out
    Или всё это можно сделать одной командой:
    Bash
    1
    
    g++ -Wextra -Wall -w -pedantic -std=c++20 main.cpp -o a.out && ./a.out
    Имя исполняемого файла в моём случае по умолчанию a.out, но можно выбрать любое, какое лично Вам нравится, например так:
    Bash
    1
    
    g++ -Wextra -Wall -w -pedantic -std=c++20 main.cpp -o myApp.exe && ./myApp.exe
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    .
  3. Связка QtCreator, MinGW и qmake.
    .
    Поддержка стандарта коллекцией компиляторов GCC в виде таблицы тут.
    Поддержка стандарта С++20 включается в самой IDE путём прописывания в .pro-файле строчек:
    CONFIG += C++20
    QMAKE_CXXFLAGS += -std=c++20
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    .
    .
  4. Связка Code::Blocks и MinGW.
    .
    Скачивать таким образом:
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    .
    Поддержка стандарта C++11 включается просто установкой галки в настройках:
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    .
    Там же можно создать новый флаг для C++14, и установить галку на него:
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
    Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

    .
  5. Связка Code::Blocks и Clang.
    .
    Подробности тут1.
    .
  6. Связка QtCreator, Clang и cmake.
    .
    Подробности тут2.
    .
  7. Связка C++ Builder 10.1 Berlin и Clang.
    .
    Подробности тут (ниже в теме).
    .
  8. Связка Dev-C++ и GCC.
    .
    Подробности тут (ниже в теме).
    .
  9. Связка Eclipse и GCC.
    .
    Подробности тут (ниже в теме).

________________________________
1 Статья была написана полтора года назад и с тех пор актуальность информации не проверялась. Возможно, за полтора года какие-то нюансы поменялись. Позже перенесу сюда свежую проверенную версию.
2 То же, что и по предыдущему пункту. Актуальность информации, выложенной в той теме, не проверялась с 4 октября 2015 года.
.
.
Обсуждение гайда ведётся в этой теме.
.
.
23
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2016, 00:12
Ответы с готовыми решениями:

Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17)
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17)

Как подключить поддержку стандарта С++11 в gcc
Как подключить поддержку стандарта С++11 в gcc. Не могу скомпилировать программу.

Подключить поддержку стандарта C99 компилятором
Здравствуйте. Стоит MinGW. Версия 4.6.2 Проблема в том, что мой MinGW не поддерживает C99....

Как включить поддержку Bookmarks
Подскажите, где можно включить поддержку Bookmarks, чтобы, наприме, использовать AbsolutePage?

3
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
14.12.2016, 16:23 2
Как включить C++11 для C++ Builder 10.1 Berlin
Создаём любой проект и идём в настройки:
Кликните здесь для просмотра всего текста
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

Далее идём в настройки компилятора C++.
Кликните здесь для просмотра всего текста
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)

И снимаем галочку "использовать 'классический' компилятор".
Наслаждаемся результатом.
Кликните здесь для просмотра всего текста
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
6
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
13.02.2017, 09:40 3
Как включить C++11/C++14/C++17 в Dev-C++.
На английской версии:
Tools -> Compiler Options -> "Compiler" tab
Далее ставим галочку на "Add the following commands when calling the compiler".
И в окно ввода вводим данный текст для 11/14/17-го стандарта соответсвенно: -std=c++11/-std=c++14/-std=c++17.
Сохраняем и пробуем.

На русской версии:
Сервис -> Настройки компилятора -> Вкладка "Компилятор"
Далее ставим галочку на "Добавить следующие команды при компиляции"(вольный перевод, может немного отличаться).
Далее всё так же, как и для английской версии.

Если после произведенных действий компилятор выдаёт ошибку, что, мол, такого флага компилятора нет, то стоит попробовать данные флаги для C++11/14/17 соответственно: -std=c++0x, -std=c++1y, -std=c++1z.
Если даже с новым флагом ошибка остается, то это значит, что ваш компилятор не поддерживает C++11/14/17 и стоит задуматься об обновлении.
4
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
21.06.2017, 16:12 4
Как включить С++11 в Eclipse

Уже должен быть создан проект, настройка будет выполняться для него.

Идем в Project -> Properties -> C/C++ Build -> Settings -> Cross G++ Compiler -> Miscellaneous.
Там в текстовом поле «Other flags» в конец через пробел дописываем флаг «-std=c++11», без запятых, кавычек и прочего.
Как на скриншоте.
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)


Далее двигаемся в Project -> Properties -> C/C++ General -> Preprocessor Include Paths -> вкладка Providers.
Ищем в списке строку с фразой «Built-in Compiler Settings», выбираем ее, и снизу в текстовом поле
«Commad to get compiler specs:» в конец дописываем флаг «-std=c++0x».
После этого, с помощью кнопки «Move Up» справа, двигаем эту строчку на верх списка.
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)


Возвращаемся к проекту, в списке, где показаны все проект вашего workspace, найдите нужный и нажмите правой кнопкой,
выбирайте «Index» —> «Re-solve Unresolved Includes».
После этого все возможности c++11 станут доступны, в том числе и функция stoi.
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)


Материал взят отсюда. Большое спасибо автору за проделанную работу.
7
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2017, 16:12
Помогаю со студенческими работами здесь

Как включить поддержку иероглифов?
Собственно как это сделать? Попытался установить японский языковой пакет, но это не помогло,...

Как включить поддержку jpeg в GD?
Всем привет! Отсутствует поддержка jpeg в GD Php 7.4 уже установлена. На ней работает сайт ...

Как включить поддержку g++ -stdc++11 в qtcreator
Здравствуйте, нужно включить поддержку 11 стандарта, как это сделать в qtcreator, не могу найти.....

Как включить поддержку OpenGL в VMware?
При рендере плеера в html5 получаю следующие ошибки: Error during ANGLE OpenGL init. Refused to...

Как включить поддержку русского языка?
Перепробовал все установочники Turbo Pascal, во всех одна и та же проблема. Погуглил , нашел...

Как включить поддержку форматов кодировок?
Уважаемые программисты подскажите пожалуйста Как включить поддержку форматов кодировок: Ниже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru