Code::Blocks - как убрать cc1: warning: option -std=c++XX is valid for C++/ObjC++ but not for C

150
20 июля 2019, 13:40

Если в проекте есть разные типы исходных файлов (C/C++), то возникает ошибка, если используется стандарт выше чем из версии установки gcc по умолчанию.

Ошибка примерна такая, безобидная, но вносит свои неудобства в процесс сборки.

cc1: warning: command line option ‘-std=c++XX’ is valid for C++/ObjC++ but not for C

Способ избавиться от нее перенесен в ответ, по рекомендациям.

Answer 1

Поделюсь методом как избавится от этого warning. Не все действия по устранению такого поведения предсказуемы.

  • Заходим в Properties файла (например .c), выбираем вкладку Дополнительно и в нижнем окне пишем следующий код, для стандарта c17: $compiler -std=c17 $options $includes -c $file -o $object
  • Заходим в Проект -> Опции сборки -> вкладка Компиляторы, правой кнопкой мыши вызываем контекстное меню.
  • Выбираем C - only flags, добавляем -std=c17
  • Выбираем C++ - only flags, добавляем -std=c++17

Порядок действий хоть и простой, но не интуитивно очевидный, ниже видео:

READ ALSO
Как двигать спрайт в направление куда он смотрит?

Как двигать спрайт в направление куда он смотрит?

Есть такой код управления спрайтом:

109
ostream::operator<<();

ostream::operator<<();

вот код:

118
Ошибка при удалении элемента в deque через итератор

Ошибка при удалении элемента в deque через итератор

myDequeerase(min) выдает ошибку: cannot seek value-initialized deque iterator

116
Параметр функции в c++

Параметр функции в c++

Вкратце можно сказать следующее

116