我想在KDevelop中开发共享库。但我没有看到任何模板库。
我想我必须从c ++模板创建项目并在两个项目中编辑CMake文件。不幸的是,我没有使用CMake进行库开发的经验,我也希望与KDevelop良好集成 - 当我构建/运行使用该库的项目时,自动构建库。
答案 0 :(得分:5)
要创建库,请使用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
,首先添加库文件夹,然后添加程序文件夹。这将使库可供应用程序使用。然后对父CMakeList运行cmake。