CMake find_path包含目录前缀

时间:2014-03-21 12:11:41

标签: c++ cmake openni

我正在为OpenNI编写一个最小的Find * .cmake。找到我写的头文件

find_path(OPENNI_INCLUDE_PATH XnOS.h)

正在按预期工作(OPENNI_INCLUDE_PATH的值为/ usr / include / ni)。 但是,在我的文件中,我必须包含标题

#include <ni/XnOS.h>

我如何摆脱ni前缀,所以我可以写

#include <XnOS.h>

第一个包含的问题是包含XnCppWrapper.h并且此文件再次包含一些Xn * .h标头,但没有ni前缀。这会导致编译器错误。

1 个答案:

答案 0 :(得分:9)

始终让find_path使用的路径与#include语句中的路径匹配。

如果你想#include <ni/XnOS.h>,你应该写

find_path(OPENNI_INCLUDE_PATH ni/XnOS.h)

如果您想要#include <XnOS.h>,请使用

find_path(OPENNI_INCLUDE_PATH XnOS.h)

请务必事先决定要使用哪一个坚持。混合使用同一个库的几个包含路径是一种可靠的方法,可以不必要地使构建环境过于复杂。