Так как я обновился от Eclipse Indigo до Juno (на Ubuntu 12.04), у меня возникла проблема, когда он показывает ошибки "неразрешенных включений" для стандартных библиотек (например, рядом с #include <iostream>
и #include <vector>
и т.д.), хотя программа строит и работает отлично (с использованием g++). Это происходит только в новых проектах, созданных с помощью Juno, а не старых из Indigo в моей рабочей области.
Благодаря нескольким другим вопросам SO (см. ниже *), я смог проследить источник проблемы до отсутствия "встроенных значений" в проекте "Свойства" > "C/С++" > "Пути и символы" > Включает вкладку:
/usr/include/c++/4.6
/usr/include/c++/4.6/x86_64-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/x86_64-linux-gnu/4.6/include
/usr/lib/gcc/x86_64-linux-gnu/4.6/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
присутствуют, когда флажок "Показывать встроенные значения" отмечен в моих старых проектах Indigo, которые не имеют этой проблемы, но отсутствуют в моих новых проектах, созданных с помощью Juno. Разумеется, если я добавлю эти семь каталогов вручную на вкладку "Включает" в настройках проекта, проблема исчезнет. Но я не хочу делать это вручную для каждого нового проекта, который я создаю. Есть ли причина, по которой это больше не является дефолтом в Juno, и есть ли способ его восстановить?
* Другие вопросы SO с похожими проблемами, с которыми я консультировался, но не решили мою проблему:
- Eclipse 3.7.0 Indigo с CDT показывает много ложных ошибок компиляции: Я думал, что ответ Erzsébet Geréb будет моим решением - в Juno, если я создам новый С++ проект с "Тип проекта" в качестве одной из категорий под "GNU Autotools" вместо "Executable", имеются встроенные каталоги. (В Indigo нет категории GNU Autotools. Если я создал ее в Indigo в качестве пустого или Hello World проекта в разделе "Исполняемый файл", эти каталоги есть, но это не так, если я так делаю в Juno - у меня есть для выбора опции в разделе "GNU Autotools" .) Но тогда, когда проект "GNU Autotools" , когда я перехожу к проекту "Свойства" > "C/С++" > "Настройки", вкладка "Настройки инструмента" больше не присутствует, и я не удалось добавить пути включения для компилятора GCC С++ и библиотеки для GCC С++ Linker, что мне нужно сделать, потому что многие из моих проектов на С++ используют библиотеки OpenCV.
- "Неразрешенное включение" ошибка с Eclipse CDT для стандартных заголовков библиотеки стандарта HTML: рассказала мне, как добавить пути включения вручную, но не как добавить встроенные по умолчанию.
- ошибка, символ "вектор" не может быть разрешен: очистка
~/.eclipse/
и индекс восстановления не помогли. - Eclipse CDT Builtin Include Directories: Опции обнаружения установлены так же, как мои проекты, которые работают правильно.
- eclipse CDT 8.01 - пути по умолчанию (libstdc, libstdС++) полностью исчезли в каталоге "includes"
- Eclipse CDT-индексатор потерян после обновления системы: не решает проблему для всех новых проектов.