Включение флага`- std=c++14 ' в коде:: Blocks

Я установил Code:: Blocks для Windows и хочу скомпилировать код C++14, такой как generic lambdas, но двоичную версию Code:: Blocks, которую я установил из codeblocks.org не поддерживает флаг
-std=c++14.

Как обновить компилятор и включить -std=c++14 флаг для кода:: блоки?

2 ответов


чтобы скомпилировать исходный код с помощью C++14 в Code:: Blocks, вам, прежде всего, необходимо загрузить и установить компилятор, поддерживающий функции C++14.

вот как вы можете сделать это в Windows:

  1. скачать MinGW из здесь (билд) или официальный сайт to выбрать варианты
  2. извлеките его, например: C:\ (результат будет C:\MinGW)
  3. Открыть Код::Блоки
  4. Go в Настройки = > компилятор.
  5. перейдите в раздел "исполняемые файлы Toolchain".
  6. в верхнем поле "каталог установки компилятора" измените каталог на тот, в котором вы извлекли компилятор. Е. Г C:\MinGW.
  7. изменить все необходимые файлы в разделе "Program Files", чтобы соответствовать файлам под C:\MinGW\bin:

enter image description here

  1. прежде чем нажать "OK", перейдите на крайнюю левую вкладку "настройки компилятора".
  2. Выберите "Компилятор Флаги."
  3. для простоты щелкните правой кнопкой мыши в списке где-нибудь и выберите "новый флаг":

enter image description here

  1. введите следующее и нажмите "ОК", и отметьте поле флага, который вы только что создали:

enter image description here

  1. наконец, вам нужно указать путь отладчика. Перейдите в" Настройки "= > "отладчик", нажмите" по умолчанию " слева и введите новый полный путь исполняемый файл:

enter image description here


теперь попробуйте скомпилировать программу с функциями C++14:

#include <iostream>
#include <string>
using namespace std;

auto main() -> int
{
    auto add_two([](auto x, auto y){ return x + y; });

    cout << add_two("I"s, "t"s) << " works!" << endl;
}

может ли скромный новичок сделать одно небольшое предложение? Небольшая модификация для тестирования кода C++14, чтобы в результате .exe-файл для запуска независимо от IDE, в которой он был создан, слегка измененная тестовая программа:

 #include <iostream>
 #include <string>

 using namespace std;

 auto main() -> int
 {
     auto add_two([](auto x, auto y){ return x + y; });

     cout << add_two("I"s, "t"s) << " works!" << endl;

     cout << "press enter to continue..." << endl;
     cin.ignore(10, '\n');
     cin.get();
 }

всем спасибо, всем мир товарищи кодеры, особенно Игорь Tandetnik.