Включение флага`- 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:
- скачать MinGW из здесь (билд) или официальный сайт to выбрать варианты
- извлеките его, например: C:\ (результат будет C:\MinGW)
- Открыть Код::Блоки
- Go в Настройки = > компилятор.
- перейдите в раздел "исполняемые файлы Toolchain".
- в верхнем поле "каталог установки компилятора" измените каталог на тот, в котором вы извлекли компилятор. Е. Г C:\MinGW.
- изменить все необходимые файлы в разделе "Program Files", чтобы соответствовать файлам под C:\MinGW\bin:
- прежде чем нажать "OK", перейдите на крайнюю левую вкладку "настройки компилятора".
- Выберите "Компилятор Флаги."
- для простоты щелкните правой кнопкой мыши в списке где-нибудь и выберите "новый флаг":
- введите следующее и нажмите "ОК", и отметьте поле флага, который вы только что создали:
- наконец, вам нужно указать путь отладчика. Перейдите в" Настройки "= > "отладчик", нажмите" по умолчанию " слева и введите новый полный путь исполняемый файл:
теперь попробуйте скомпилировать программу с функциями 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.