什么是 CMake 中的 INTERFACE IMPORTED 库及其用途?
What is an INTERFACE IMPORTED library in CMake and what are its uses?
到目前为止,我已经看到用于描述 header-only 库的 INTERFACE
库类型,因为它不编译源代码,也不生成库工件。 IMPORTED
库类型我见得比较少,但据我所知,它用于描述已经 on-disk.
的预编译库
我最近看到一些带有 IMPORTED INTERFACE
库类型的代码,并且对为什么要使用它感到困惑。该类型有哪些特点,该类型有哪些典型的use-cases?
它指的是一个 header-only 库,其来源您无法控制或在另一个构建树/系统中找到。最常在查找模块或 CMake 包配置模块中创建。
与其他导入的目标一样,但与 non-imported 目标不同的是,它不必(实际上 不能)install()
-ed 如果它出现在 install()
ed 目标的 INTERFACE_LINK_LIBRARIES
属性 中;相反,生成的包将需要 find_dependency
包。
到目前为止,我已经看到用于描述 header-only 库的 INTERFACE
库类型,因为它不编译源代码,也不生成库工件。 IMPORTED
库类型我见得比较少,但据我所知,它用于描述已经 on-disk.
我最近看到一些带有 IMPORTED INTERFACE
库类型的代码,并且对为什么要使用它感到困惑。该类型有哪些特点,该类型有哪些典型的use-cases?
它指的是一个 header-only 库,其来源您无法控制或在另一个构建树/系统中找到。最常在查找模块或 CMake 包配置模块中创建。
与其他导入的目标一样,但与 non-imported 目标不同的是,它不必(实际上 不能)install()
-ed 如果它出现在 install()
ed 目标的 INTERFACE_LINK_LIBRARIES
属性 中;相反,生成的包将需要 find_dependency
包。