
https://stackoverflow.com/questions/9131763/eclipse-cdt-c11-c0x-support
Я пришел с этого сайта.
У меня есть проект C++, который без проблем компилируется с g++-4.8. Я просто хотел использовать std::int8_t из файла cstdint.
Проблема в том, что индексатор Eclipse не может разрешить имя.
Я зашел в файл csdint, и в начальном макросе он расширяет __cplusplus до 199711L вместо 201103L.
В настройках проекта я добавил std=c++11, а в флагах компилятора добавилGXX_ЭКСПЕРИМЕНТАЛЬНЫЙ_CXX0X
А я разве сказал, что он компилируется?
Это очень раздражает, я думаю, что смогу прожить и без индексатора, но с другой стороны, в чем смысл IDE, если она выдает мне ложные срабатывания ошибок?
решение1
Я нашел ответ здесь:http://www.eclipse.org/forums/index.php/t/490066/
Перейдите в Свойства проекта->Пути и символы->Вкладка «Символы»->GNU C++->Символ __cplusplus и измените на 201103L.
решение2
Это зависит от используемого типа проекта C++ и версии Eclipse. У меня есть проект Makefile в Eclipse Mars.2 (4.5) с CDT 8.8.1.201602051005) Если у вас есть проект Makefile и вы видите элемент C/C++ General
--> C/C++ Make Projects
в свойствах проекта, вам также нужно перейти на вкладку «Параметры обнаружения» и добавить -std=c++11
вАргументы вызова компилятора.