Интересно, каковы ограничения на использование файлов CMake (наверное, особенно при использовании подкаталогов и / или библиотек, а также расположения исполняемых файлов)
(Когда я использую простой пример Hello, KDevelop работает нормально, я даже могу отладить свой проект. Когда я пытаюсь приблизить его к своему реальному целевому проекту, я редактирую файл CMakeList.txt, чтобы создать библиотеку в подкаталоге, и перемещаю исполняемые файлы в отдельном подкаталоге, KDevelop работает частично: он создает исполняемые файлы, исполняемые файлы работают в автономном режиме, но не в KDevelop, и, конечно, я не могу отлаживать.)
Я предполагаю, что возникает какая-то проблема видимости: то есть, хотя CMake считает, что с моим расположением все в порядке (т. Е. Создает правильный Makefile и даже исполняемые файлы), KDevelop каким-то образом теряется, и, поскольку он не видит какой-либо файл в том месте, где он ожидает, он перестает работать Есть ли набор правил, которые НЕ использовать в CMake?
В любом случае я прикрепляю свои файлы cmake (основной и один для библиотеки). Я делаю что-то не так?
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
project(kmanycore CXX C)
include_directories(../lib)
add_subdirectory(lib)
add_executable(../bin/kmanycore ../src/main.cpp)
add_executable(../bin/kmanycore_test ../src/main_test.cpp)
target_link_libraries(../bin/kmanycore manycore)
target_link_libraries(../bin/kmanycore_test manycore)
а также
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
add_library(manycore src/ToDo.cc)
Ваш файл CMake выглядит странно, и я не IDE.
Первый аргумент add_executable
это имя исполняемого файла, без пути. Это работает по изменению с простыми Makefiles. То же самое с target_link_libraries
, И неясно, кто эти два проекта связаны друг с другом. Обычно IDE отслеживают один проект; переплетенные не поддерживаются.