проблема затмения с помощью cmake проекта - PullRequest
1 голос
/ 31 марта 2009

Я создал проект eclipse с помощью cmake. Я использую vtk с qt. Структура Dir выглядит следующим образом:

parent_dir:
    source - source.h, source.cpp
    build - this is where the .project resides

Я запустил затмение с помощью рабочей области dir / path / parent .

Я следовал инструкциям, описанным в http://www.cmake.org/Wiki/Eclipse_CDT4_Generator. Все строит нормально, но навигация не работает. То есть затмение дает мне предупреждение, что source.h еще не проиндексирован.

Кроме того, автозаполнение не работает с классами, связанными с qt и vtk. Я проверил с Project | Properties, куда включены qt и vtk. Что я делаю неправильно? Мне бы очень хотелось, чтобы с моим проектом работало автозаполнение и навигация в Eclipse. Я использую Eclipse Ganymede на 64-битной Ubuntu 8.04.

спасибо заранее

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

Мне понадобилось много времени, чтобы понять. Вы должны убедиться, что каталог «Build» действительно НЕ является частью каталога проекта, что означает каталог самого высокого уровня, который содержит «CMakeLists.txt».

Так что в моем случае у меня есть «dir / tree / project_dir» и «dir / tree / project_dir / src», тогда я должен создать каталоги сборки «dir / tree / build_dir».

Затем я создал небольшой скрипт, который создает проекты Debug и Release:

#!/bin/sh
mkdir -p $1_build/Release
mkdir -p $1_build/Debug
cmake -E chdir $1_build/Release cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../../$1
cmake -E chdir $1_build/Debug cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../$1

Вызвать скрипт из "dir / tree" с аргументом "project_dir".

Затем в Eclipse нажмите «Файл» -> «Импорт» -> «Общие» -> «Существующие проекты в рабочую область». Укажите каталог «dir / tree / $ 1_build», он автоматически распознает оба проекта.

Теперь и проекты Release, и Debug загружаются в Eclipse, и у вас есть все приятные опции, такие как Code Assiste (завершение кода) и быстрая отладка с помощью двойного щелчка по ошибкам.

Обратите внимание, что вы можете добавить некоторые файловые фильтры в Eclipse для удаления файлов CMake из дерева проекта.

2 голосов
/ 31 марта 2009

Согласно Wiki, у вас должно быть дерево сборки вне дерева исходного кода.

Этот связанный ресурс не создается, если каталог сборки является подкаталогом из исходного каталога, потому что Eclipse не позволяет загружать проекты которые связали ресурсы, указывающие в родительский каталог. Поэтому мы рекомендуем создавать свои каталоги сборки не как дети, но как братья и сестры исходный каталог.

Вам нужно будет сделать что-то вроде этого:

mkdir /home/user/parent_dir_build
cd  /home/user/parent_dir_build
cmake /home/user/parent_dir
...