6

C99を使用してCライブラリをコンパイルしています。変換ユニットにstring.hを含めています(NetBeans IDEのstr?casecmp関数の定義に移動できます。

ソースは次のようになります。

#include <string.h>

int foo(char* c1, char* c2) {
   return strcasecmp(c1, c2);
}


int foobar(char* c1, char* c2, int n) {
   return strncasecmp(c1, c2, n);
}

ただし、コンパイルしようとすると、タイトルに示されているエラーが発生します。

gccバージョン4.6.3(Ubuntu / Linaro 4.6.3-1ubuntu5)を使用しています。

これは私のgccコマンドがどのように見えるかです:

gcc    -c -g -Werror -DE4C_THREADSAFE -DLINUX_BUILD -I../include -I../genutils -std=c99 -fPIC  -MMD -MP -MF build/Debug/GNU-Linux-x86/btypes.o.d -o build/Debug/GNU-Linux-x86/btypes.o btypes.c

これの原因は何ですか?どうすれば修正できますか?

4

2 に答える 2

16

これらの関数は、strings.hではなくで宣言されていstring.hます。

于 2012-12-27T06:10:50.760 に答える
1

string.h。の代わりにヘッダーstrings.hを含めます。

于 2012-12-27T10:16:22.737 に答える