Как разработать общую библиотеку в KDevelop? - PullRequest
6 голосов
/ 17 ноября 2011

Я хочу разработать общую библиотеку в KDevelop. Но я не вижу шаблонов для библиотеки.

Я думаю, мне нужно создать проект из шаблона C ++ и редактировать файлы CMake в обоих проектах. К сожалению, у меня нет опыта разработки библиотек с помощью CMake, также я хочу хорошей интеграции с KDevelop - автоматической сборкой библиотеки, когда я собираю / запускаю проект, использующий эту библиотеку.

1 Ответ

5 голосов
/ 17 ноября 2011

Для создания библиотеки используйте команду add_library:

add_library(<name> [STATIC | SHARED | MODULE]
          [EXCLUDE_FROM_ALL]
          source1 source2 ... sourceN)

Например:

add_library(mylib SHARED
    a.h
    a.cpp
    b.h
    b.cpp)

Создаст общую библиотеку из четырех файловв списке.

Если ваша программа (созданная с помощью add_executable) использует библиотеку, при указании ссылки с помощью target_link_libraries, CMake добавит зависимость,так что если вы измените a.cpp , библиотека mylib будет перестроена, а ваше приложение будет перекомпоновано.

Например

add_executable(myprog
    main.cpp)

target_link_libraries(myprog
    mylib)

Редактировать:

Когда ваша библиотека и проект находятся в разных папках, вы можете использовать add_subdirectory.

СоздатьCMakeList.txt в каждом каталоге, в папке библиотеки используйте add_library в приложении, используйте add_program и target_link_libraries.

В родительской папке используйте add_subdirectory, сначала добавьте папку библиотеки, затемпапка программы.Это сделает библиотеку доступной для приложения.Затем запустите cmake для родительского CMakeList.

...