我正在使用cmake编译具有以下结构的项目:
根
我在每个LibX上都有CMakeLists,每个src和Root文件夹。
我的项目正在按预期编译和工作。但我想将标题包含在: 包括“{LibX} / {header} .h”而不是“{header} .h”,或者不是将绝对/相对路径放到标题中。
由于我在CMakeLists中设置了所有包含目录,我可以简单地包含一个带有名称的标题,但这不是最好的解决方案。
例如,我的main.cpp依赖于LibA和LibB,而LibA依赖于LibB,后者是一个数学库。很高兴知道我每次都在哪个库中包含一个标题。
谢谢
答案 0 :(得分:2)
Root/LibA/inc/
的 LibA
强> /MyHeaderFileFromA.h
#include <LibA/MyHeaderFileFromA.h>
你去了
答案 1 :(得分:0)
将评论推广到某个答案,以便其他人更容易找到:
#include
需要匹配路径。您可以在 Root
下创建一个名为 includes
的额外文件夹,其中包含指向 LibA/inc
(调用链接 LibA
)和 LibB/inc
(调用链接 LibB
)。
然后将 Root/includes
设置为搜索头文件的路径之一。
根