CMake相对包含C ++中的路径

时间:2014-06-03 08:52:23

标签: gcc cmake

在我使用的库中有一个麻烦:所有路径都是相对的。 我的意思是,来自path1/path2/file.h的文件有#include "interface.h",其中(界面)位于anotherpath/anotherpath2/interface.h

有什么方法可以强制链接器在不同的目录中查找包含?

1 个答案:

答案 0 :(得分:4)

链接器对头文件的关注度不高。这是您正在查看的编译器。 (要真的挑剔,它是预处理器。;-))

CMake拥有include_directories()命令:

include_directories( "anotherpath/anotherpath2" )

这在./CMakeLists.txt中会使#include "interface.h"成为可能。

但那是你真正想要的吗?通常,目录用于隔离模块#include "anotherpath/anotherpath2/interface.h"会发送更多更清晰的消息,告知此处实际包含的内容,以及人们可以查找该头文件以查找其声明的位置。也许重构include语句比将大量include目录添加到CMake配置更好......

一般来说,你的问题会给非常一点上下文,所以提供建议很难。