我需要将我的程序与 Kerberos 身份验证库 ( gssapi_krb5
) 链接到相应的标头gssapi/gssapi.h
并gssapi/gssapi_krb5.h
包含在源文件中。
目前,如果头文件不存在,编译将继续,并因编译时错误提示未找到头文件而停止。我想在cmake文件中实现的是检查头文件是否存在,如果找不到就停止编译。
我将以下代码添加到我的CMakeList.txt
文件中。
INCLUDE(CheckIncludeFiles)
CHECK_INCLUDE_FILES(gssapi/gssapi.h;gssapi/gssapi_krb5.h HAVE_KRB_HEADERS)
IF (NOT HAVE_KRB_HEADERS)
RETURN()
ENDIF (NOT HAVE_KRB_HEADERS)
但它仍然没有像我预期的那样发挥作用。我想要以下几行:
-- Looking for gssapi/gssapi.h - found
-- Looking for gssapi/gssapi_krb5.h - not found
但失败。此外,使用宏输出时变量HAVE_KRB_HEADERS
为空。message
继续编译,直到出现上述错误。
我在网上某处读到,这可能是因为 CMake 缓存。我对 CMake 很陌生,对这个概念不太清楚。我的 CMake 版本是 2.6。我怎样才能使这段代码工作?谢谢!