Для создания библиотеки используйте команду 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.