c++ - CMake find_path 包含目录前缀

标签 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 header ,但没有 ni 前缀。这会导致编译器错误。

最佳答案

总是有您用于 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)

一定要事先决定好要使用哪一个并坚持。为同一个库混合多个包含路径肯定会使构建环境不必要地过于复杂。

关于c++ - CMake find_path 包含目录前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22558419/

相关文章:

c++ - C++ 中的整数到字符串转换/整数字符串连接 - 更紧凑的解决方案?

Android NDK clang 编译器错误在 Windows 上显示 'No such file or directory'

java - SimpleOpenNI 记录和回放用户跟踪数据

c++ - PCL 上的点云开发

opencv - 3D映射到RGB的深度(Kinect OpenNI深度图到OpenCV RGB凸轮)

c++ - HTML <--> C++ 通信

c++ - 不允许类型名称

c++ - 将 OpenCV BGR 8 位图像转换为 CIE L*a*b*

CMAKE:在 clang/g++ 和 libc++/libstdc++ 之间切换

cmake 不会在自定义命令中复制文件