持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第27天,点击查看活动详情。
导入库
格式
add_library(<name> <type> IMPORTED [GLOBAL])
创建一个名为 <name>
的导入的库目标。不生成任何规则来构建它,IMPORTED
目标属性为True
。目标名称的作用域位于创建它的目录及其下方,但GLOBAL
选项扩展了可见性。它可以像项目中构建的任何目标一样被引用。 IMPORTED
库对于从target_link_libraries()
这样的命令中方便地引用非常有用的。通过设置名称以 IMPORTED_
和 INTERFACE_
开头的属性来指定导入库的详细信息。
<type>
必须是下面的一种:
STATIC
, SHARED
, MODULE
, UNKNOWN
-
引用位于项目外部的库文件。
IMPORTED_LOCATION
的目标属性(或其每个配置变形 importted_location_ )都指定主库文件在磁盘上的位置:- 对于大多数非 windows 平台上的 SHARED 库,主要的库文件是链接器和动态加载器都使用的 .so 或 .dylib 文件。如果引用的库文件具有 SONAME (或者在 macOS 上具有以 @rpath/开头的 LC_ID_DYLIB),则该字段的值应该在 importted_soname 目标属性中设置。如果引用的库文件没有 SONAME,但是平台支持它,那么应该设置IMPORTED_NO_SONAME 目标属性。
- 对于 Windows 上的 SHARED 库,importted_implib 目标属性(或其每个配置变量importted_implib_ )指定 DLL 导入库文件(.dll 或 .dll.a)在磁盘上的位置。importted_location是运行时库的位置(是可选的,但是target_runtime_dll生成器表达式需要)。