繁体   English   中英

隐式声明时出错,但函数在源文件中声明

[英]error on implicit declaration, but function is declared in source file

我正在尝试构建一个无线驱动程序,最终导致隐式声明错误:

wl_iw.c: In function 'wl_iw_set_priv':
wl_iw.c:7649:4: error: implicit declaration of function 'wl_iw_set_cscan' [-Werror=implicit-function-declaration]

这是它试图调用函数的地方:

#if defined(CSCAN)

    else if (strnicmp(extra, CSCAN_COMMAND, strlen(CSCAN_COMMAND)) == 0)
        ret = wl_iw_set_cscan(dev, info, (union iwreq_data *)dwrq, extra);
#endif 

因此,似乎只有在定义CSCAN时才会调用此方法。 好吧,在源文件中,如果声明了CSCAN,我们也会声明wl_iw_set_cscan( 我相信 )。 这是它定义的地方(github) ,并且...... 如果向上滚动一点,它似乎只依赖于定义的CSCAN

CSCAN是明确定义的,如果我做了详细的构建,就会显示出来:

arm-linux-androideabi-gcc *snip* -DCSCAN *snip* -c -o /home/owner/android-wmon/core/compat-wireless-3.6-rc7-1/drivers/net/wireless/bcmdhd/wl_iw.o /home/owner/android-wmon/core/compat-wireless-3.6-rc7-1/drivers/net/wireless/bcmdhd/wl_iw.c

我甚至可以通过在wl_iw.c的顶部放置一个“#define CSCAN”来加倍确定它会抱怨它被定义了两次。 所以我很肯定CSCAN是定义的。

如果是这种情况,为什么我得到隐式定义警告转为错误? 自定义CSCAN以来,应定义wl_iw_set_cscan。

在第5781行,还有另一个#define正在屏蔽wl_iw_set_cscan

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM