在我使用的库中有一个麻烦:所有路径都是相对的。
我的意思是,来自path1/path2/file.h
的文件有#include "interface.h"
,其中(界面)位于anotherpath/anotherpath2/interface.h
。
有什么方法可以强制链接器在不同的目录中查找包含?
答案 0 :(得分:4)
链接器对头文件的关注度不高。这是您正在查看的编译器。 (要真的挑剔,它是预处理器。;-))
CMake拥有include_directories()
命令:
include_directories( "anotherpath/anotherpath2" )
这在./CMakeLists.txt
中会使#include "interface.h"
成为可能。
但那是你真正想要的吗?通常,目录用于隔离模块。 #include "anotherpath/anotherpath2/interface.h"
会发送更多更清晰的消息,告知此处实际包含的内容,以及人们可以查找该头文件以查找其声明的位置。也许重构include语句比将大量include目录添加到CMake配置更好......
一般来说,你的问题会给非常一点上下文,所以提供建议很难。