Я локально раздвоил (через hg clone
) проект C / C ++ (Eclipse CDT) и импортировал его в мое рабочее пространство Eclipse. Мое окно редактора для разветвленного проекта теперь выглядит так:
Понятно, что это не настоящие ошибки, поскольку код создается правильно. Кроме того, эти ошибки не отмечены в исходном проекте, из которого был создан этот.
Почему Eclipse считает, что в этом источнике есть ошибки?
РЕДАКТИРОВАТЬ: сообщения об ошибках Eclipse при наведении на «ошибки», например, Type int64_t could not be resolved
а также symbol 'cout' could not be resolved
,
РЕДАКТИРОВАТЬ: я заметил, что Eclipse обычно показывает «папку» с именем includes
в проекте. Это отсутствует для этого проекта. Как я могу получить его обратно?
Eclipse должен знать пути, где найти включаемые файлы. Это может быть установлено с использованием общих настроек затмения или проект за проектом.
По некоторым причинам кажется, что пути по умолчанию не установлены для вашего текущего проекта.
Что ты можешь сделать:
Откройте настройки проекта и перейдите в C / C ++ General -> Paths and Symbols (по крайней мере, так это называется в моей версии Eclipse) и исправьте включаемые каталоги.
Может быть, этого достаточно, чтобы загрузить конфигурацию по умолчанию для этого конкретного проекта. Может быть, вы должны настроить свои включаемые пути самостоятельно. В Unix / OS X это обычно должно быть usr/include
, На Windows я понятия не имею, но это должно быть легко узнать.
После этого может потребоваться перестроить ваш индекс затмения (щелкните правой кнопкой мыши на вашем проекте, затем index -> rebuild).
Если это не помогло, поделитесь снимком экрана диалога «Пути и символы» вашего проекта.
Также см. затмение документации по теме.
Я должен был включить
CDT Cross GCC Built-in Compiler Settings
CDT GCC Built in Compiler Settings [ Shared ]
в Свойствах проекта -> Общие сведения о C / C ++ -> Включение путей препроцессора, макросов и т. д. -> Провайдеры
добавить это определение в Eclipse для Project Свойства-> C / C ++ Общие-> Пути и символы
__STDC_FORMAT_MACROS
Перестройте свой индекс затмения. Это будет работать.
Это работало на Mac OS X Yosemite 10.10.5, версия Eclipse Mars.1 Release (4.5.1):
Поскольку включения обычно обнаруживаются Eclipse через набор инструментов, проверьте, что у вас есть фактический набор инструментов (Когда я столкнулся с этой проблемой после импорта проекта, для набора инструментов было установлено «Нет набора инструментов».):
Проект -> Свойства -> Сборка C / C ++ -> Редактор цепочек инструментов -> Текущая цепочка инструментов
Если в раскрывающемся списке нет цепочек инструментов, попробуйте снять флажок «Отображать только совместимые цепочки инструментов» и выбрать цепочку инструментов (я выбрал Cross GCC). Когда я сохранил изменения и заново открыл свойства проекта, чтобы снова посмотреть на это поле, «Показать только совместимые наборы инструментов» было автоматически перепроверено.
Затем переиндексируйте проект:
Проект -> Индекс C / C ++ -> Перестроить
Это решило проблему для меня («псевдо-ошибки» исчезли, а включенная «папка» появилась под моим проектом в представлении файловой системы).
Есть ли у вас #include
правильные файлы в вашем коде? Для std :: cout это будет:
#include <iostream>
и для int64_t
:
#include stdint.h