autotools的AC_CHECK_MEMBER宏在Linux内核结构体中无法正常工作
创始人
2024-11-12 16:00:27
0

在configure.ac文件中添加以下代码:

AC_DEFUN([AC_CHECK_KERNEL_MEMBER], [
    AC_MSG_CHECKING([if kernel member $2 exists])
    AC_CACHE_VAL(ac_cv_${1}_kernel_member_$2, [
        cat < conftest.c
#include 
#include 

int main(void)
{
    return offsetof(struct $1, $2);
}
EOF
        if AC_TRY_EVAL(ac_compile); then
            if AC_TRY_EVAL(ac_link); then
                ac_cv_$1_kernel_member_$2=yes
            fi
        fi
    ])
    if test "x$ac_cv_$1_kernel_member_$2" = "xyes"; then
        AC_MSG_RESULT([yes])
        eval "$3=yes"
    else
        AC_MSG_RESULT([no])
        eval "$3=no"
    fi
])

然后在configure.ac中调用此宏以检查Linux内核结构体成员是否存在,示例如下:

AC_CHECK_KERNEL_MEMBER([stat], [st_atimensec], [HAVE_STAT_ST_ATIMENSEC])
if test "x${HAVE_STAT_ST_ATIMENSEC}" = "xyes"; then
    AC_DEFINE([HAVE_STAT_ST_ATIMENSEC], [1], [Whether struct stat has st_atimensec member])
fi

这将检查Linux内核的stat结构体中是否存在st_atimensec成员,并定义HAVE_STAT_ST_ATIMENSEC宏以表示是否存在该成员。

相关内容

热门资讯

今日百科"约战丹东苹... 今日百科"约战丹东苹果辅助"开挂(透视)辅助平台(一直真的有挂的)-哔哩哔哩;1、完成约战丹东苹果辅...
4分钟带你了解!哈糖大菠萝提高... 4分钟带你了解!哈糖大菠萝提高胜率(透视挂)分享给玩家外挂开挂辅助插件(其实真的是有挂);打开点击测...
2分钟细说"途游大作... 2分钟细说"途游大作战辅助"开挂(透视)辅助平台(其实是真的有挂)-哔哩哔哩;1、超多福利:超高返利...
两分钟带你了解!微信小程序开发... 两分钟带你了解!微信小程序开发辅助(透视挂)2024教程外挂开挂辅助插件(果然有挂)1、下载安装好微...
玩家必备科普"星悦游... 玩家必备科普"星悦游戏辅助器"开挂(透视)辅助软件(原来确实是有挂的)-哔哩哔哩;星悦游戏辅助器最新...
9分钟带你了解!四川家园游戏辅... 9分钟带你了解!四川家园游戏辅助软件(透视挂)分辨真假外挂开挂辅助下载(一贯是有挂) >>您好:软件...
透视科技"钱柜麻将辅... 透视科技"钱柜麻将辅助器"开挂(透视)辅助软件(果然确实有挂)-哔哩哔哩;1、点击下载安装,钱柜麻将...
3分钟带你了解!天天贵阳辅助插... 3分钟带你了解!天天贵阳辅助插件(辅助挂)重大通报外挂开挂辅助工具(其实是有挂的);无需打开直接搜索...
一分钟揭秘"凑一桌游... 一分钟揭秘"凑一桌游戏辅助器"开挂(透视)辅助神器(一直真的有挂)-哔哩哔哩;1、这是跨平台的凑一桌...
5分钟带你了解!爱玩联盟辅助软... 5分钟带你了解!爱玩联盟辅助软件视频讲解(透视挂)教学盘点外挂开挂辅助平台(一贯真的有挂)>>您好:...