在目录"fred“中,该目录具有包含以下内容的CMakeLists.txt:
add_library(fred)
...
target_include_directories(fred PUBLIC "inc")这将使用'inc‘填充fred的目标INTERFACE_INCLUDE_DIRECTORIES属性
调用add_subdirectory(fred)的目录是否会自动获得INCLUDE_DIRECTORIES属性,并附加freds INTERFACE_INCLUDE_DIRECTORIES属性("inc"),还是需要我手动完成?
我问,因为我有一个有两个add_subdirectory命令的项目,其中一个添加的包含路径似乎可用于代码,但另一个不可用,不确定是我搞砸了什么还是误解了!
提前感谢
发布于 2020-02-04 08:18:14
包含的目录将被传播到链接到该库的任何目标。这意味着仅添加子目录是不够的。您还需要拥有
target_link_libraries(MyProject <PRIVATE|PUBLIC|INTERFACE> fred)这将添加fred the MyProject的包含目录。你可以在这里找到更多关于target_link_libraries的信息。
https://stackoverflow.com/questions/60048720
复制相似问题