Eclipse CDT Неверный путь к проекту
У меня есть проект C, созданный с использованием make-файла, Eclipse постоянно предупреждает о "Неверный путь проекта: повторяющиеся записи пути", но я не могу понять, какого черта он хочет от меня. Я хотел бы отключить это предупреждение и продолжить свою жизнь.
Мое приложение компилируется и работает нормально, без единого предупреждения, кроме этого. Будучи добросовестным разработчиком, я стремлюсь решить эту проблему, поэтому у меня есть теплые размышления, которые может принести только чистая сборка.
9 ответов
Это работало для меня с Eclipse 3.7.2 и CDT 8.0.2:
- Откройте свойства проекта | C/C++ Build | Опции обнаружения.
- Нажмите кнопку "Очистить найденные записи сейчас":
- Перестроить.
Похоже, что это новая функция в CDT 8. У меня была эта проблема "Недопустимый путь проекта: повторяющиеся записи пути" в течение многих лет, и это, очевидно, новое решение.
До этого в C / C++ были двойные пути Общие | Дорожки и символы | Включает вкладку. Я не мог избавиться от них. Они появляются, только когда установлен флажок Показать встроенные значения, поэтому они, очевидно, генерируются каким-либо образом. После выполнения вышеуказанного они были заменены набором, в котором не было дубликатов. Разница лишь в том, что такие же настройки появились в Assembly, GNU C и GNU C++. Раньше они были разными наборами. Например, сборочные были пустыми.
Пока проблема не вернулась.
С этой проблемой трудно справиться. Это не очень хорошо работает.
Это применимо к Eclipse 3.4.1 / CDT 5.0.1
Из того, что я могу сказать, когда вы создаете "проект C/C++" в CDT, он попытается автоматически определить ваши пути включения. Отличная идея, но реализация ужасна.
Если вы удалите или переименуете каталог, старый каталог останется. Если вы переименуете проект, старый каталог останется. Когда Eclipse не может найти этот старый каталог, он выдает это предупреждение.
Мое решение - полностью отключить автоматическое обнаружение и вручную управлять путями включения. Вам нужен этот список включаемых путей для таких вещей, как нажатие ctrl (автоматическая навигация по определениям /functions/files/etc) и затенение блоков #define. Он строит индекс из этого списка.
Вот что вам нужно сделать: Щелкните правой кнопкой мыши по вашему проекту в проводнике проектов и перейдите в свойства. Перейдите в C/C++ Build -> Параметры обнаружения. Снимите флажок "Автоматизировать обнаружение путей и символов".
Теперь перейдите к C/C++ General -> Paths and Symbols. Вы увидите на вкладке Includes ассемблер, языки C и C++ с соответствующими автоматически обнаруженными каталогами include. Перейти на все 3 языка и удалить все. Откройте свой make-файл и расшифруйте ваши включения на соответствующем языке. Переименование проекта все равно приведет к сбою индексатора. ${project_name} и другие глобальные переменные не работают. Если у вас возникли проблемы, используйте кнопку "Рабочая область", чтобы перейти к каталогу, который вы хотите включить, поскольку это, кажется, всегда работает, но ввод его вручную НЕ дает. Нажмите "Применить", затем ОК. Щелкните правой кнопкой мыши ваш проект, перейдите в index-> rebuild Restart eclipse.
Это должно исправить вещи навсегда. Каждый раз, когда что-то неправильно скрывается из-за блока #define или #ifdef, это потому, что этот список файлов устарел. Вы также узнаете, что список устарел, если вы получите "неразрешенные включения" в строках #include.
Даг Шефер, надеюсь, Google это индексирует, вы нашли свое имя и исправили эту ужасную реализацию. знак равно
Я нашел этот отчет об ошибке, чтобы помочь моей проблеме. Я переместил некоторые включенные пути и не мог избавиться от старых путей.
Я тоже видел эту проблему, старые пути никогда не удаляются. Чтобы исправить файл вручную, необходимо переместить / удалить файл ${projectname}.sc, находящийся в папке ${workspace}/. Metadata/.plugins/org.eclipse.cdt.make.core.
Использование Eclipse Luna и CDT 8.5
Я исправил проблему
- Откройте свойства проекта | C/C++ Общее | Пути и символы
- Посмотрите на вкладку "Местоположение источника", я переименовал каталог, и он не был обновлен в этом списке.
- перестраивать
Здесь я только что нашел другой способ автоматического повторного определения пути:
- Откройте "Настройки рабочего пространства-> C/C++ -> Построить -> Настройки -> Обнаружение"
- Найти "Настройки встроенного компилятора CDT [Shard]"
- Нажмите "Очистить записи" и кнопку "Сброс" справа
- Перестройка проектов и Готово
Надеюсь, это поможет.
Ссылка: http://qing.blog.sina.com.cn/1802712302/6b7334ee33004def.html
Вы должны проверить, если вы вручную определили символ, который eclipse может определить из вашего make-файла. У меня есть проект с написанным вручную make-файлом, и проблема была решена путем удаления символов, которые я вручную добавил в C/C++ Общие -> Пути и символы -> Символы.
Вот поздний ответ для Eclipse 4.4 (у которого нет опции Discovery).
Удалить проект infoPath
файл. Eclipse или плагин ADT (не уверен, какой) воссоздает его и заполняет его правильными путями.
Вы можете найти проект infoPath
файл в <Eclipse workspace>/.metadata/.plugins/com.android.ide.eclipse.ndk/<project>.pathInfo
,
Я думаю, что Eclipse или плагин ADT определяет новые пути из двух мест: (1) каталог NDK, установленный в настройках Eclipse, и (2) пути в Application.mk
, Все эти пути становятся "встроенными" в Eclipse.
Также см. Как изменить встроенные пути C/C++, указывающие на удаленную установку android-ndk-r9?
Это похоже на ошибку в CDT.
Если вы действительно хотите избавиться от этого, вы должны попытаться избавиться от пробелов в пути проекта; это было предложено в результате поиска по ошибке. Если это не сработает, попробуйте открыть файл.cproject - там, где лежат все настройки CDT, - и проверить фактический путь с дублированными записями.
Нет необходимости удалять .metadata
ребята, просто удалите все пути, расположенные в C / C++ General -> Paths and Symbols -> Symbols, и замените их при использовании кнопки click, но не указывайте путь вручную