2012-10-11 5 views
0

소스 파일에 선언되어있다 :오류가 나는 결국 암시 적 선언 오류에 실패 무선 드라이버를 구축을 위해 노력하고

#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도 선언됩니다 (은 내가이라고 생각합니다). Here is where it is defined (github) 및 ... if you scroll up a little bit, it only seems to be dependent on CSCAN being defined.

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이 정의되었다는 것이 긍정적이다.

이 경우 암시적인 정의 경고가 표시되지 않는 이유는 무엇입니까? wl_iw_set_cscan은 CSCAN이 정의 된 이후에 정의되어야합니다.

+5

체크 라인 5781 –

+0

감사합니다. 이것이 문제였습니다. 당신이 대답으로 제시한다면, 나는 그것을 받아 들일 것입니다. – gnychis

+1

'gcc -E'를 통해 소스 파일을 실행하면 이런 종류의 문제를 찾을 수 있습니다. 전 처리기 출력을 보여줍니다. –

답변

2

라인 5781에는 wl_iw_set_cscan을 마스킹하는 또 다른 #define가 있습니다.