CheckStructHasMember¶
检查给定的结构或类是否具有指定的成员变量
- CHECK_STRUCT_HAS_MEMBER¶
CHECK_STRUCT_HAS_MEMBER(<struct> <member> <header> <variable> [LANGUAGE <language>])
<struct> - the name of the struct or class you are interested in <member> - the member which existence you want to check <header> - the header(s) where the prototype should be declared <variable> - variable to store the result <language> - the compiler to use (C or CXX)
可以在调用此宏之前设置以下变量以修改检查运行方式
CMAKE_REQUIRED_FLAGS
传递给编译器的其他标志的字符串。该字符串必须以空格分隔——;-list不起作用。
CMAKE_<LANG>_FLAGS
的内容及其关联的特定配置变量在CMAKE_REQUIRED_FLAGS
的内容之前自动添加到编译器命令。
CMAKE_REQUIRED_DEFINITIONS
;-list 编译器定义的形式为
-DFOO
或-DFOO=bar
。还将自动添加为<resultVar>
指定的名称定义。
CMAKE_REQUIRED_INCLUDES
传递给编译器的头搜索路径的 ;-list。这些将是唯一使用的头搜索路径——
INCLUDE_DIRECTORIES
目录属性的内容将被忽略。
CMAKE_REQUIRED_LINK_OPTIONS
在版本 3.14 中添加。
;-list 添加到链接命令的选项(有关详细信息,请参见
try_compile()
)。
CMAKE_REQUIRED_LIBRARIES
;-list 添加到链接命令的库。这些可以是系统库的名称,也可以是 导入目标(有关详细信息,请参见
try_compile()
)。
CMAKE_REQUIRED_LINK_DIRECTORIES
在版本 3.31 中添加。
传递给链接器的库搜索路径的 ;-list(有关详细信息,请参见
try_compile()
)。
CMAKE_REQUIRED_QUIET
在版本 3.1 中添加。
如果此变量的值为布尔真值,将禁止所有与检查关联的状态消息。
示例
CHECK_STRUCT_HAS_MEMBER("struct timeval" tv_sec sys/select.h
HAVE_TIMEVAL_TV_SEC LANGUAGE C)