【发布时间】:2017-07-25 13:54:17
【问题描述】:
我正在设计一组可以链接到我的其他 C++ 项目中的库。为了使集合易于使用,我希望能够链接到各个库,或者链接到包含所有其他库的主库。如何在 CMakeLists.txt 文件中指定它?
例如:
add_library(library1 SHARED
file1.cpp
file2.cpp
)
add_library(library2 SHARED
file3.cpp
file4.cpp
)
# Define a master library that contains both of the others
add_library(master_library SHARED
library1
library2
)
是否有适当的方法来使用 CMake 获得此功能?
编辑:
这个问题不是重复的:CMake: Is it possible to build an executable from only static libraries and no source?
这仅与共享库有关,与静态库或可执行文件无关。
【问题讨论】:
-
如果您只是要将它们“合并”成一个“主”库,为什么还要有两个不同的库?除非您有其他依赖于其他库的其他目标,否则只需从其他库的源创建 single 库
master_library,而根本没有其他库。跨度> -
这就是我想要拥有独立库的确切原因。有些程序只依赖于较小的库,而需要所有功能的较大程序可以链接到主库,而不必链接到所有较小的库
-
拥有这个合并的“主”库只会使用磁盘上不需要的额外空间。当需要这两个库时,请同时使用这两个库。它也会让其他人更清楚。
-
在更大的规模上可能会有更多的小型库,因此单独链接到所有这些库需要大量额外的工作
标签: c++ cmake shared-libraries