【发布时间】:2010-04-26 07:13:48
【问题描述】:
find_package(GTK)
我怎样才能让它输出一些东西,以便我知道它是否找到了一些东西?
平台:windows XP
【问题讨论】:
find_package(GTK)
我怎样才能让它输出一些东西,以便我知道它是否找到了一些东西?
平台:windows XP
【问题讨论】:
您可以使用message 命令,如下所示:
FIND_PACKAGE(GTK) 如果 (${GTK_FOUND}) 消息(状态“找到 GTK。”) 否则(${GTK_FOUND}) MESSAGE(状态“找不到 GTK。”) ENDIF (${GTK_FOUND})或者,如果您希望它在未找到 GTK 时中止:
FIND_PACKAGE(GTK) 如果 (${GTK_FOUND}) 消息(状态“找到 GTK。”) 否则(${GTK_FOUND}) MESSAGE(FATAL_ERROR "找不到 GTK。") ENDIF (${GTK_FOUND})请注意,如果您执行后者,那么您可以简单地将“REQUIRED”标志与 FIND_PACKAGE 一起使用,因为指定“REQUIRED”标志可确保如果找不到它会失败并出现错误:
FIND_PACKAGE(需要 GTK)如果未找到 GTK,上述命令将导致 CMake 中止并打印错误消息。您可能还对来自CMake Manual 的FIND_PACKAGE 的文档感兴趣。另外,应该注意 FIND_PACKAGE(XYZ) 实际上调用了 CMake 模块 FindXYZ,因此每个具有相应 FIND_PACKAGE 的包都有自己的 CMake 模块来实现查找操作......因为 CMake 仍然有些新,其中一些查找模块是未正确实现...根据您下面的 cmets,似乎 FindGTK 没有正确实现(因为如果它不存在,使用 REQUIRED 标志应该会导致它中止并出现致命错误,但不会在你的情况下似乎这样做)。
【讨论】:
-- Could not locate GTK 但不会中止。
FIND_PACKAGE(GTK REQUIRED),但它并没有中止,只是输出Could not locate GTK。
FindGTK?