【发布时间】:2019-05-21 15:15:02
【问题描述】:
我有一个由多个构建目标组成的大型项目,它们之间存在依赖关系。结构是这样的:
Application <-- Library I <--- Library II
<-- Library III <---|
<-- Library IV
存在多个此类应用程序,它们使用分布在不同库中的共享代码。
在项目中,CMake 用于确保正确的包含路径和各个库之间的链接。
使用 add_library("Library II") 设置库,随后其他项目使用 target_link_libraries("Library I" "Library II") 获取依赖项。
这在大多数情况下都有效。但是,有时找不到某些依赖项。我怀疑在某些情况下“图书馆 I”是未知的。但是,如果库未知,则 target_link_libraries() 不会引发错误。该错误只会在编译/链接时出现。
我想在运行 cmake 时验证是否已找到所有库。如果在那个阶段不知道某事,我想抛出一个错误并通知开发人员。
我尝试使用 find_libraries() 但据我了解,这会查找某个文件。但是,在我的情况下,该文件只会在编译阶段编译,因此在运行 cmake 时该文件不存在。
【问题讨论】:
标签: cmake