6

我想在 KDevelop 中开发共享库。但我没有看到任何图书馆模板。

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

4

1 回答 1

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.cppmylib将被重建并且您的应用程序将被重新链接。

例如

add_executable(myprog
    main.cpp)

target_link_libraries(myprog
    mylib)

编辑:

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

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

在父文件夹 useadd_subdirectory中,先添加 library 文件夹,然后添加 program 文件夹。这将使该库对应用程序可用。然后针对父 CMakeList 运行 cmake。

于 2011-11-17T19:30:53.803 回答