gpt4 book ai didi

c++ - cmake如何找到包?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:27:39 25 4
gpt4 key购买 nike

我试图了解 cmake 如何使用 FindXXX.cmake 文件查找包。例如,库 OpenNI 在此处定义了文件 FindOpenNI.cmake:https://github.com/PointCloudLibrary/pcl/blob/master/cmake/Modules/FindOpenNI.cmake

现在,在该文件的底部,有以下内容:

if(OPENNI_FOUND)
# Add the include directories
set(OPENNI_INCLUDE_DIRS ${OPENNI_INCLUDE_DIR})
message(STATUS "OpenNI found (include: ${OPENNI_INCLUDE_DIRS}, lib: ${OPENNI_LIBRARY})")
endif(OPENNI_FOUND)

我不明白变量 OPENNI_FOUND 的定义位置,因为这是文件中提到的第一点。

我本以为这个文件本身是用来找到 OpenNI 的,通过搜索文件内容中指定的目录。但是,似乎之前必须声明OPENNI_FOUND。因此,我感到困惑:FindOpenNI.cmake 用于查找 OpenNI,但在此过程中,它已被赋予变量 OPENNI_FOUND,它本身告诉 cmake 是否已找到 OpenNI。

那么 cmake 是如何找到 OpenNI 的呢?使用这个文件?还是其他方式?

谢谢:)

最佳答案

是的,CMake 使用您提到的文件来查找 OpenNI。 OPENNI_FOUND 变量由 find_package_handle_standard_args() 函数设置。这是完成所有魔法的地方,请参阅 documentation for it .

关于c++ - cmake如何找到包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com