簡體   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