Eclipse не может найти включаемый файл в подкаталоге

После импорта c ++ Makefile-проекта в Eclipse мой проект зависит от некоторых библиотек, которые находятся в /usr/include/gazebo-2.2/gazebo.

Они включены через линию #включают < бельведер / хх / xx.hh>. У CMake нет проблем с поиском файлов, к сожалению, Eclipse …

В моей папке include, в папке / USR / включать / устанавливается как включаемый путь. Однако он не может найти включаемые файлы.

Возможно ли для Eclipse обнаружить файлы? без добавить полный путь к каталогам включения?

2

Решение

Возможно ли для Eclipse обнаружение файлов без добавления полного пути к каталогам включения?

Нет, если только рассматриваемый путь включения не является одним из включенных по умолчанию компиляторов
дорожки, что не так в вашем случае.

Если вы хотите, чтобы компилятор нашел файл заголовка, на который ссылается, например,

<gazebo/xx/xx.hh>

когда требуемый файл:

/usr/include/gazebo-2.2/gazebo/xx/xx.h

тогда компилятору должен быть указан путь включения:

/usr/include/gazebo-2.2

который должен появиться в командной строке компилятора в вашем журнале сборки как:

-I/usr/include/gazebo-2.2

Я также заметил, что ваш пример на самом деле:

#include < gazebo/xx/xx.hh>

не:

#include <gazebo/xx/xx.hh>

В вашем примере ведущее пространство будет считаться частью
имя файла и заголовок не будут найдены.

1

Другие решения

Возможно ли для Eclipse обнаружение файлов без добавления полного пути к каталогам включения?

Поскольку вы используете проект Makefile, вероятно, ваш makefile указывает соответствующий путь включения. Eclipse может подобрать это, используя свой Build Output Parser. Общий способ установить это:

  1. Убедитесь, что ваш make-файл может выдавать выходные данные, которые включают полные вызовы команд компилятора (например, gcc -I /usr/include/gazebo-2.2 ... — поскольку это то, что нужно видеть анализатору выходных данных сборки), или его можно настроить для получения этого вывода.
  2. Убедитесь, что Eclipse настроен на корректный вызов вашего make-файла (с точки зрения каталога вызова и имени цели) в Свойства проекта -> Сборка C / C ++.
  3. Убедитесь, что синтаксический анализатор сборки включен в Свойства проекта -> Общие сведения о C / C ++ -> Пути препроцессора, Макросы и т. Д. -> вкладка Поставщики. При необходимости откорректируйте «Шаблон команд компилятора» в зависимости от ситуации.
  4. Выполните сборку из Eclipse. Предполагая, что ваша сборка прошла успешно (или, по крайней мере, достаточно успешна, чтобы выходные данные сборки содержали команды компилятора для каждого исходного файла), анализатор выходных данных сборки должен затем получить информацию, такую ​​как пути и макросы, определенные в командной строке. В Project Explorer исходные файлы, настройки которых были выбраны таким образом, будут помечены небольшим гаечным ключом на значке.
  5. На этом этапе ваши включения должны быть решены. Возможно, вам придется пересоздать индекс, чтобы Eclipse обработал содержимое вновь разрешенных файлов.

Для полноты, поскольку вы упомянули CMake, я упомяну, что существуют также плагины, которые будут настраивать пути включения проекта, основанные непосредственно на CMakeLists.txt. (Я не могу рекомендовать конкретный, потому что я не использую CMake сам, но поиск «CMake» на Eclipse Marketplace должен дать вам несколько вариантов.)

1

По вопросам рекламы [email protected]