0

暗黙の宣言エラーで最終的に失敗するワイヤレスドライバーを構築しようとしています:

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の先頭に「#defineCSCAN」を配置することで、二重に確信することもできます。これは、2回定義されていると文句を言います。したがって、CSCANが定義されていることを確信しています。

この場合、暗黙の定義警告がエラーになっているのはなぜですか?CSCANが定義されているため、wl_iw_set_cscanを定義する必要があります。

4

1 に答える 1

2

行 5781 には、別の#definemasking がありwl_iw_set_cscanます。

于 2012-10-12T20:01:05.183 に答える