cmake在添加的可执行文件中使用库目标

时间:2017-05-05 11:18:05

标签: c++ cmake

我已经开始了一个新的c ++项目,它有几个可执行文件和相对大量的共享代码。

root
    CMakeLists.txt
    Common
    Application1 
    Application2
    ....

因此,多个应用程序都可以使用他们的单元测试进行编译而不会出现问题。但是因为它们依赖于Common中的共享代码,所以在我更新某些项目之后,我会重新编译每个项目的共享代码。

所以我想知道是否可以添加库目标。并首先构建。然后我将我的代码链接到该库。

这似乎是一件相对正常的事情,但我无法在谷歌上找到任何相关信息。

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。
您必须将一个CMakeLists文件添加到Common文件夹中,然后将其编译为库

# Add required source files.
add_library(Common ...)

# Include required header files. They must be public to be recognized where they are needed.
target_include_directories(Common PUBLIC ...)

然后在项目的CMakeLists中使用:

add_subdirectory(Common) // Will call the other CMakelists
...
# Link to the required libraries.
target_link_libraries(Application Common)