我正在创建一个希望公开两个接口(interface)包含目录的导入目标:
list(APPEND LIB_INCLUDE_DIRS "dir1")
list(APPEND LIB_INCLUDE_DIRS "dir2")
add_library(lib SHARED IMPORTED GLOBAL)
set_target_properties(
lib
PROPERTIES
IMPORTED_LOCATION "something"
INTERFACE_INCLUDE_DIRECTORIES ${LIB_INCLUDE_DIRS}
)
不幸的是,有一个错误: set_target_properties 调用的参数数量不正确。
如果我尝试只设置第一个目录,它可以工作。有没有办法同时设置?还是 INTERFACE_INCLUDE_DIRECTORIES 的复数形式只是具有讽刺意味?
最佳答案
只需将目录列表放在引号中
set_target_properties(
lib
PROPERTIES
IMPORTED_LOCATION "something"
INTERFACE_INCLUDE_DIRECTORIES "${LIB_INCLUDE_DIRS}"
)
否则,列表将再次扩展为参数。
引用文献
关于cmake 许多 INTERFACE_INCLUDE_DIRECTORIES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42509551/