我已经开始了一个新的c ++项目,它有几个可执行文件和相对大量的共享代码。
root
CMakeLists.txt
Common
Application1
Application2
....
因此,多个应用程序都可以使用他们的单元测试进行编译而不会出现问题。但是因为它们依赖于Common中的共享代码,所以在我更新某些项目之后,我会重新编译每个项目的共享代码。
所以我想知道是否可以添加库目标。并首先构建。然后我将我的代码链接到该库。
这似乎是一件相对正常的事情,但我无法在谷歌上找到任何相关信息。
感谢任何帮助。
答案 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)