Как настроить Eclipse CDT для cmake?

Как настроить Eclipse "Helios" с плагином CDT для cmake?

cmake all 
CMake Error: The source directory "D:/javaworkspace/workspace/Planner/Debug/all" does not    exist.

Eclipse всегда хочет использовать опцию "все", и я не знаю, как остановить его, чтобы не использовать его.

Я видел, что в разделе" Поведение сборки "в разделе" предпочтение "была опция "все". Я стер это, но он все еще работает неправильно (эта же ошибка).

5 ответов


в Eclipse-CDT вы не создать проекты cmake, но вы импортируете проекты cmake. Вот что вы должны сделать:

  1. скажите, что источник вашего проекта CMake под названием "Planner" находится в D:/javaworkspace/src/Planner

  2. создать папку (папки должны быть параллельны друг другу): D:/javaworkspace/build/Planner

  3. перейдите в папку D:/javaworkspace/build/Planner и запустите CMake с помощью генератора Eclipse:

    cmake ../../src/Planner -G"Eclipse CDT4 - Unix Makefiles"
    

    Это создайте файлы make для проекта планировщика.

  4. чтобы импортировать это в Eclipse, сделайте следующее:

    файл - > импорт - > существующий код как проект Makefile

    и выберите D:/javaworkspace/build/Planner (выходная папка сборки с файлами make) в качестве "существующего местоположения кода"

однако, глядя на ваши пути, мне кажется, что вы работаете над Windows. В windows CMake можно создавать проекты Visual Studio. Если хочешь ... используйте CMake я предлагаю сначала создать проект "hello world" с помощью CMake (помните, Eclipse не создает проекты CMake, вам нужно создать CMakeLists.txt файл вручную)


Что сработало лучше всего для меня, это cmake4eclipse. Это плагин, который доступен через рынок.

части из текста справки cmake4eclipse:

CMake для CDT требует существующего проекта C / C++ для работы. Он позволяет использовать cmake в качестве генератора для makefiles вместо генератор встроенный в CDT. См. раздел включение генерации CMake buildscript относительно деталей.

создать новый проект с существующим исходным кодом, пожалуйста следуйте этим шаги:

  • Проверьте исходный код.
  • откройте мастер создания проекта C/C++ ("File" = > " New "= > " C Project "или" File "= > " New " = > "C++ Project").
    • убедитесь, что местоположение проекта указывает на корневой каталог ваших проверенных файлов
    • для проекта тип выберите исполняемый. Вы также можете выбрать общую библиотеку или Static Библиотека, это не имеет значения, что информация исходит от вашего CMakeLists.txt, но CDT требует этого. Не выбирайте проект Makefile сюда!
    • завершить создание проекта.
  • откройте диалоговое окно "Свойства проекта".
    • выберите узел "C / C++ Build" и вкладку "Настройки компоновщика" и убедитесь, что генерируются файлы Makefile автоматически проверяется.
    • выберите узел "редактор цепочек инструментов" и установите "CMake Make Builder" в качестве текущего строителя.
    • если ваш верхний уровень CMakeLists.txt не находится в корневом каталоге вашего checked из файлов, выберите" C / C++ General "" путь и символы " узел и Вкладка" расположение источника". Затем настройте исходную папку, чтобы указать на каталог, содержащий CMakeLists.txt-файл. Это скажет CDT indexer для сканирования файлов заголовков в вашем проекте.
  • Pro совет: добавить CMakeLists.txt файл в корневой каталог файлов, если вы пропустите двоичные файлы или архивы папка в Представление Проектов C / C++. Построение проекта. Это вызывает CMake, например, в при необходимости создайте сценарии сборки, а затем вызовите make.

Не пытайтесь импортировать проект Eclipse, созданный вручную использование cmake-G Eclipse CDT4-Unix Makefiles, так как это поставит вас на классический маршрут проекта Makefile!

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

  • откройте диалоговое окно "Свойства проекта".
    • выберите узел "C / C++ General", а препроцессор " включает пути, макросы и т. д." вешалка. Выберите" CMAKE_EXPORT_COMPILE_COMMANDS Parser " и переместите его в начало списка.
    • нажмите "OK", чтобы закрыть диалоговое окно. Не забудьте запустить одну сборку сейчас и воссоздать индекс.

Provider tab

это исправило все неприятный индексатор проблемы, которые раздражали меня, когда я использовал только "настройки встроенного компилятора CDT GCC" и добавил такие вещи, как "-std=c++14" в "команду для получения спецификаций компилятора".


использование CMAKE в проекте Eclipse Makefile (на win):

1) создать новый "проект Makefile с существующим кодом"

2) изменить настройки builder (свойства проекта - >C / C++ Build - > настройки Builder):

  • построить команду: УМК /с "команды mkdir ${инвалид} и CD /Д ${инвалид} && ${х} -г "Юникс make-файлы" ${ProjDirPath} && сделать"

  • создать каталог: ${workspace_loc: / IoT_SDK} / build / ${ConfigName}

вот и все!


в дополнение к принятому ответу вы должны указать версию eclipse.

Затмение Луны (4.4):

cmake -G"Eclipse CDT4 - Unix Makefiles" -D_ECLIPSE_VERSION=4.4 ../../src/Planner

Затмение Кеплер (4.3):

cmake -G"Eclipse CDT4 - Unix Makefiles" -D_ECLIPSE_VERSION=4.3 ../../src/Planner

другой совершенно другой метод.

  • вручную создайте пустой проект Eclipse.

  • связать исходный каталог через свойства проекта - > C / C++ General - > пути и символы -> местоположение источника.

  • в каталогах сборки отладки и выпуска создайте "Make Targets" (используя "Make Targets View"). Оставьте поле "Make Target" пустым и установите для поля "command" значение cmake -G "Unix Makefiles" <path/to/the/sources>.

  • когда вы дважды щелкаете по "Make Target", который вы создали, он должен вызвать вызов cmake внутри dirs отладки/выпуска.

  • в "свойства проекта -> C/C++ Build" отключить встроенный генератор makefile.

теперь нормальная сборка должна работать. Он также будет принимать любые изменения в CMakeLists.txt-файлы (в той степени, в какой CMake может).

возможно более подробное описание: https://stackoverflow.com/a/38140914/4742108