2

私は次のようstat.hに私の中に含めてfoo.cいます:

#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]
...

これらの警告で言及されている問題を修正するにはどうすればよいですか? で C99 サポートに移行するまで、これは問題ではないように思われましたが、-std=gnu99その理由はわかりません。アドバイスをありがとう。

4

1 に答える 1

10

フラグを追加すると、-fgnu89-inline「C99 モードでのインライン関数の従来の GNU セマンティクス」を有効にすることで、警告が修正されます。

于 2012-10-29T11:55:09.430 に答える