如何在#include上将头名称前面的库名称?

时间:2014-03-04 00:31:14

标签: c++ cmake libraries

我正在使用cmake编译具有以下结构的项目:

  • 利巴
    • INC
    • SRC
  • LibB
    • INC
    • SRC
  • 的main.cpp

我在每个LibX上都有CMakeLists,每个src和Root文件夹。

我的项目正在按预期编译和工作。但我想将标题包含在: 包括“{LibX} / {header} .h”而不是“{header} .h”,或者不是将绝对/相对路径放到标题中。

由于我在CMakeLists中设置了所有包含目录,我可以简单地包含一个带有名称的标题,但这不是最好的解决方案。

例如,我的main.cpp依赖于LibA和LibB,而LibA依赖于LibB,后者是一个数学库。很高兴知道我每次都在哪个库中包含一个标题。

谢谢

2 个答案:

答案 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 设置为搜索头文件的路径之一。

  • LibA
    • 公司
    • 源代码
  • LibB
    • 公司
    • 源代码
  • 包括
    • LibA(指向 Root/LibA/inc 的链接)
    • LibB(指向 Root/LibB/inc 的链接)
  • main.cpp