3

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

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 版。

4

1 回答 1

3

CMake 的if命令通过使用NOT而不是!.

你需要做:

if(NOT HAVE_GETOPT_H)
于 2013-03-26T14:40:07.157 回答