find_package(GTK)
Run Code Online (Sandbox Code Playgroud)
如何让它输出一些东西,以便我知道它是否找到了什么?
平台:Windows XP
Mic*_*yan 13
您可以使用message命令,如下所示:
FIND_PACKAGE(GTK)
IF (${GTK_FOUND})
MESSAGE(STATUS "Found GTK.")
ELSE (${GTK_FOUND})
MESSAGE(STATUS "Could not locate GTK.")
ENDIF (${GTK_FOUND})
或者,如果您希望它在未找到GTK时中止:
FIND_PACKAGE(GTK)
IF (${GTK_FOUND})
MESSAGE(STATUS "Found GTK.")
ELSE (${GTK_FOUND})
MESSAGE(FATAL_ERROR "Could not locate GTK.")
ENDIF (${GTK_FOUND})
请注意,如果您执行后者,那么您可以简单地使用带有FIND_PACKAGE的"REQUIRED"标志,因为指定"REQUIRED"标志可确保如果找不到它将失败并显示错误:
FIND_PACKAGE(GTK REQUIRED)
如果找不到GTK,上面的命令将导致CMake中止并打印错误消息.您可能还对CMake手册中的FIND_PACKAGE文档感兴趣.另外,我们应该注意到FIND_PACKAGE(XYZ)实际上调用CMake的模块FindXYZ,所以每个包与相应的FIND_PACKAGE都有自己的CMake模块执行查找操作...因为CMake的是stilll有点新,一些人的发现模块不正确实施?根据您在下面的意见,又好像FindGTK没有正确执行(因为如果它不存在,使用所需要的标志应使其致命错误中止,但不似乎在你的情况下这样做).