代码之家  ›  专栏  ›  技术社区  ›  Ashley Duncan

CMake目标接口包含目录是否自动添加到父包含目录?

  •  0
  • Ashley Duncan  · 技术社区  · 6 年前

    在目录“fred”中有一个CMakeLists.txt,其中包括:

    add_library(fred)
    ...
    target_include_directories(fred PUBLIC "inc")
    

    调用add_subdirectory(fred)的目录是否自动获取其INCLUDE_DIRECTORIES属性,并附加freds INTERFACE_INCLUDE_DIRECTORIES属性(“inc”),或者我需要手动执行此操作?

    我问,因为我有一个项目有两个add_子目录命令,其中一个添加的include路径似乎对代码可用,但另一个不可用,不确定我是否搞错了什么或误解了!

    提前谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   ExaltedBagel    6 年前

    包含目录将传播到链接到此库的任何目标。这意味着添加子目录是不够的。你还需要

    target_link_libraries(MyProject <PRIVATE|PUBLIC|INTERFACE> fred)
    

    target_link_libraries 在这里。

    推荐文章