2012-10-29 2 views
1

gnu99 지원 GCC에서 다음과 같이에 대처하는 방법 "경고 : 인라인 기능`* stat64`가 선언되었지만 정의되지 않았다"다음과 같이 내 <code>foo.c</code>에서 <code>stat.h</code>을 포함하고

#include <sys/stat.h> 

나는이를 컴파일 할 때 :

gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O0 -g -Wformat -Wall -Wswitch-enum -Wextra -std=gnu99 -DDEBUG=1 -c foo.c -o objects/foo.o -I... 
gcc -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O0 -g -Wformat -Wall -Wswitch-enum -Wextra -std=gnu99 -DDEBUG=1 objects/foo.o -o ../bin/debug.foo ../lib/libfoo.a ... -lbz2 -lz 

나는 <sys/stat.h> 기능에 고유 한 다음과 같은 경고를 얻을 :

In file included from foo.c:15:0: 
/usr/local/gcc-4.7.2/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/include-fixed/sys/stat.h:317:16: warning: inline function `lstat64` declared but never defined [enabled by default] 
/usr/local/gcc-4.7.2/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/include-fixed/sys/stat.h:255:16: warning: inline function `fstat64` declared but never defined [enabled by default] 
... 

이 경고에서 언급 된 문제를 어떻게 해결할 수 있습니까? -std=gnu99으로 C99 지원으로 마이그레이션 할 때까지는 문제가되지 않지만 이유는 확실하지 않습니다. 어떤 조언을 주셔서 감사합니다.

+0

질문의 코드는'lstat()'을 사용합니까? – alk

+0

'stat()'를 사용합니다. 관련된 코드 행은'struct stat buf; int i = stat (fn, &buf);' –

답변

8

-fgnu89-inline 플래그를 추가하면 "C99 모드 인 경우 인라인 함수에 일반적인 GNU 의미 체계"를 사용하여 경고를 수정합니다.