在目录“fred”中有一个CMakeLists.txt,其中包括:
add_library(fred) ... target_include_directories(fred PUBLIC "inc")
调用add_subdirectory(fred)的目录是否自动获取其INCLUDE_DIRECTORIES属性,并附加freds INTERFACE_INCLUDE_DIRECTORIES属性(“inc”),或者我需要手动执行此操作?
我问,因为我有一个项目有两个add_子目录命令,其中一个添加的include路径似乎对代码可用,但另一个不可用,不确定我是否搞错了什么或误解了!
提前谢谢
包含目录将传播到链接到此库的任何目标。这意味着添加子目录是不够的。你还需要
target_link_libraries(MyProject <PRIVATE|PUBLIC|INTERFACE> fred)
target_link_libraries 在这里。