如何在KDevelop中开发共享库?

kra*_*mir 6 kdevelop cmake

我想在KDevelop中开发共享库.但我没有看到任何模板库.

我想我必须从c ++模板创建项目并在两个项目中编辑CMake文件.不幸的是,我没有使用CMake进行库开发的经验,我也希望与KDevelop良好集成 - 当我构建/运行使用该库的项目时,自动构建库.

Sil*_*ker 5

要创建库,请使用以下add_library命令:

add_library(<name> [STATIC | SHARED | MODULE]
          [EXCLUDE_FROM_ALL]
          source1 source2 ... sourceN)
Run Code Online (Sandbox Code Playgroud)

例如:

add_library(mylib SHARED
    a.h
    a.cpp
    b.h
    b.cpp)
Run Code Online (Sandbox Code Playgroud)

将从列出的四个文件创建一个共享库.

如果你的程序(用add_executable它创建)使用库,当你指定链接时target_link_libraries,CMake将添加依赖项,这样如果你改变了a.cpp,库mylib将被重建,你的应用程序将被重新链接.

例如

add_executable(myprog
    main.cpp)

target_link_libraries(myprog
    mylib)
Run Code Online (Sandbox Code Playgroud)

编辑:

当您的库和项目位于不同的文件夹中时,您可以使用add_subdirectory.

在每个目录中创建一个CMakeList.txt,在add_library应用程序中使用的库文件夹中,使用add_programtarget_link_libraries.

在父文件夹使用中add_subdirectory,首先添加库文件夹,然后添加程序文件夹.这将使库可供应用程序使用.然后对父CMakeList运行cmake.

  • 虽然编译时没有必要,但最好包含它们,以便标题中的更改将导致重新编译.*使*和其他构建工具通常只检查上次修改时间,因此它们包含在其他文件中的事实不会导致更改被拾取,并触发重新编译. (3认同)