В отличии от NetBeans, где достаточно всего лишь создать проект из существующего Makefile, Eclipse требует некоторой настройки. В этой статье я подробно разберу настройку отладчика и компилятора.

Предположим, что у вас есть такой, вполне обычный CMakeLists.txt.

  1. project(weathercollector)
  2.  
  3.  
  4. include (CMakeUserFindMySQL)
  5.  
  6. include_directories ("${PROJECT_BINARY_DIR}")
  7. include_directories ("${MYSQL_INCLUDE_DIR}")
  8. include_directories ("${PROJECT_SOURCE_DIR}/re2")
  9. include_directories ("${PROJECT_SOURCE_DIR}/rudeconfig/src")
  10. include_directories ("${PROJECT_SOURCE_DIR}/headers")
  11. link_directories ("${PROJECT_SOURCE_DIR}/re2/obj")
  12. link_directories ("${PROJECT_SOURCE_DIR}/rudeconfig/.libs")
  13.  
  14. file (COPY ${PROJECT_SOURCE_DIR}/settings.conf DESTINATION ${PROJECT_BINARY_DIR})
  15. file (COPY ${PROJECT_SOURCE_DIR}/weathercollector.rc DESTINATION ${PROJECT_BINARY_DIR})
  16.  
  17. find_package (Threads)
  18.  
  19. FILE(GLOB_RECURSE SRCS "${PROJECT_SOURCE_DIR}/src/*.cpp")
  20. ADD_EXECUTABLE(weathercollector ${SRCS})
  21.  
  22. target_link_libraries (weathercollector ${MYSQL_LIBRARIES})
  23. target_link_libraries (weathercollector re2)
  24. target_link_libraries (weathercollector stdc  )
  25. target_link_libraries (weathercollector m)
  26. target_link_libraries (weathercollector rudeconfig)
  27. target_link_libraries (weathercollector ${CMAKE_THREAD_LIBS_INIT})

Теперь давайте создадим проект Eclipse. Нажимайте File > New > Project. В появившимся мастере выбирайте C++ Project. Далее как обычно: вводите название, выбирайте Toolchain.

Теперь откройте окно Make Target, проследуя Window > Show View > Make Target. Оно появится справа от главного окна. Выберете в этом окне корневую директорию для CMake, именно она станет его рабочей директорией.

Теперь:

  • кликайте правой кнопкой мыши по выбранной папке и в контекстном меню нажимайте "New...".
  • В появившемся диалоге, уберите две галочки "Same as the target name" и "Use builder settings".

Затем заполните форму:

  • Target Name: Cmake Release
  • Make Target: (оставить пустым)
  • Build command:
    cmake -E chdir Release/ cmake -G "Unix Makefiles" ../ -DCMAKE_BUILD_TYPE:STRING=Release
  • Жмём Ок.

Тоже самое нужно сделать для цели Debug. Target Name, естественно будет Cmake Debug, а Build command:

cmake -E chdir Debug/ cmake -G "Unix Makefiles" ../ -DCMAKE_BUILD_TYPE:STRING=Debug

Как вы уже наверняка поняли, в директории проекта необходимо создать директории, в которых будут собираться цели:

mkdir Release Debug

Теперь кликните правой кнопкой мыши по созданной цели и нажмите Build Target. Eclipse зайдёт в рабочую директорию и выполнит там команду "cmake ../". Естественно это действие нужно будет повторять после каждой правки CMakeLists.txt

Теперь необходимо настроить, собственно сам Builder.

  • В левом меню найдите свой проект
  • Вызовите контекстное меню правым щелчком мыши и нажмите Properties
  • В появившемся окне выберите слева в списке, пункт "C/C++ Build"
  • В верхнем выпадающем меню, выберете конфигурацию "Release" (если такой нет, создайте в этом же окошке)
  • Снимите галочки "Use default build command" и "Generate make files automatically"

В активизировавшемся поле ввода "Build command", укажите:

make -C ${ConfigName}
  • В поле "Build directory" напишите: ${PROJECT_LOC}
  • Переходим на вкладку Behaviour. Там всё должно быть вот так:

    Тоже самое следует повторить и для конфигурации Debug, с той лишь разницей, что в поле "Build command" я обычно указываю опцию VERBOSE=1, чтобы получать подробный лог компиляции. Поле у меня при этом выглядит вот так:

    make -C ${ConfigName} VERBOSE=1

    Стоит заметить, что после каждого изменения файла CMakeLists.txt необходимо обновить цель. Для этого нужно щёлкнуть на ней правой кнопкой мыши и в контекстном меню нажать "Rebuild Last Target".

    Компиляция и дебагинг

    Как выяснилось, просто иметь цели компиляции не достаточно. Нужно ещё настроить соответствующие кнопки на верхней панели. Начнём с самого интересного - c Debug`а.

    • Найдите на верхней панели иконку с маленьким зеленоватым жучком и нажмите на стрелку вниз рядом с ним.
    • В выпадающем меню выберете "Debug Configurations"
    • В появившемся окне, в списке слева выберете пункт "C/C++ Application" и кликните по нему правой кнопкой мыши.
    • Далее "New" и это создаст вам новый профиль отладки для текущего приложения в проекте.

    Далее нажимайте кнопку "Browse", рядом с полем Project и выбирайте проект, с которым будете работать. После этого нажимает "Search Project" и там вы должны увидеть исполняемый файл, который получается после компиляции. Выбирайте его.

    Стоит отметить, что бывали случаи, когда путь на выходной бинарник, в поле C/C++ Application по умолчанию указывал куда-то в CMakeFiles. Забирать его от туда не очень удобно, поэтому не стесняйтесь указывать что-то вроде "Debug/weathercollector" :-)

    Теперь опять находим в левом фрейме Project Explorer свой проект, кликаем по нему правой кнопкой мыши, в выпавшем меню находим пункт "Debug as" и выбираем только что созданный профиль дебагинга.

    В верхнем меню, нажмите кнопку с иконкой молоточка, в выпадающем меню которого можно найти созданные ранее профили Debug и Release.

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

    Следуя тому же принципу, нужно создать и назначить профили для кнопок Run и Build.



    Статью пока никто не комментировал. Ваш комментарий может стать первым.

    Войдите или зарегистрируйтесь, чтобы написать комментарий.