Молодогвардейцев 454015 Россия, Челябинская область, город Челябинск 89085842764
MindHalls logo

Включаем поддержку C++11 в Eclipse

Доброго времени суток! Я не знаю почему, но Eclipse из коробки не поддерживает стандарт языка C++11, отсюда возникают неприятности типа «stoi was not declared in this scope.». Кроме того, не распознаются такие полезные функции как to_string, atoi, atof, stod, stof и многие другие.

Однажды я даже запарился и написал свою реализацию stoi, потому что не смог подружить Eclipse со стандартной функцией, но понятное дело, что это никуда не годится. Поэтому я таки поборол свою среду разработки. Удивительно, но не нашлось внятных инструкций на русском языке, и это стало второй причиной создания этой записи. Первая причина банальная — я не смогу второй раз все это повторить без инструкции.

Включаем C++11 в Eclipse

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

Идем в Project -> Properties -> C/C++ Build -> Settings -> Cross G++ Compiler -> Miscellaneous. Там в текстовом поле «Other flags» в конец через пробел дописываем флаг «-std=c++11», без запятых, ковычек и прочего. Как на скриншоте.

Включение c++11 в Eclipse

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

Включение c++11 в Eclipse

Возвращаемся к проекту, в списке, где показаны все проект вашего workspace, найдите нужный и нажмите правой кнопкой,  выбирайте «Index» — > «Re-solve Unresolved Includes». После этого все возможности c++11 станут доступны, в том числе и функция stoi.

Включение c++11 в Eclipse

Заключение

Закреплено навеки веков, я уверен, что часто буду заглядывать в эту инструкцию, и надеюсь, что она сможет помочь кому нибудь еще. Спасибо за внимание!