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