正确的检查包括CMAKE中的文件

时间:2013-03-26 09:47:11

标签: 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_file("getopt.h" HAVE_GETOPT_H)
if("${HAVE_GETOPT_H}" STREQUAL "")
  message( FATAL_ERROR "getopt Not Found" )
endif()
我做错了什么?我正在使用cmake版本2.8.3。

1 个答案:

答案 0 :(得分:3)

CMake的if命令使用NOT而不是!来否定参数。

你需要这样做:

if(NOT HAVE_GETOPT_H)