检查CMAKE中包含文件的正确方法

检查CMAKE中包含文件的正确方法,cmake,Cmake,我使用这种方法检测包含文件,但如果未检测到错误,则永远不会执行: include(CheckIncludeFile) check_include_file("getopt.h" HAVE_GETOPT_H) if(!HAVE_GETOPT_H) message( FATAL_ERROR "getopt Not Found" ) endif() 但如果我用空字符串检查是否有效,并且在未找到包含文件时打印消息: include(CheckIncludeFile) check_include_f

我使用这种方法检测包含文件,但如果未检测到错误,则永远不会执行:

include(CheckIncludeFile)
check_include_file("getopt.h" HAVE_GETOPT_H)
if(!HAVE_GETOPT_H)
  message( FATAL_ERROR "getopt Not Found" )
endif()
但如果我用空字符串检查是否有效,并且在未找到包含文件时打印消息:

include(CheckIncludeFile)
check_include_file("getopt.h" HAVE_GETOPT_H)
if("${HAVE_GETOPT_H}" STREQUAL "")
  message( FATAL_ERROR "getopt Not Found" )
endif()
我做错什么了吗?我使用的是cmake版本2.8.3。

cmake的命令通过使用
而不是
来否定参数

您需要执行以下操作:

if(NOT HAVE_GETOPT_H)
我使用这个(显然是错误的)例子