Cmake C使许多接口包含目录

Cmake C使许多接口包含目录,cmake,Cmake,我正在创建一个导入的目标,它希望公开两个接口包含目录: 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_DIREC

我正在创建一个导入的目标,它希望公开两个接口包含目录:

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_属性调用的参数数量不正确


如果我尝试只设置第一个目录,它会工作。有没有办法把两者都设置好?或者界面目录的复数形式只是一种讽刺吗?

只要把目录列表加上引号就行了

set_target_properties(
    lib
    PROPERTIES
    IMPORTED_LOCATION "something"
    INTERFACE_INCLUDE_DIRECTORIES "${LIB_INCLUDE_DIRS}"
)
否则,列表将再次展开为参数

参考资料