Ошибка gcc: «Inputtools.c: 85: ошибка: конфликтующие типы для‘ strcasestr ’» - PullRequest
0 голосов
/ 27 сентября 2010

Я попытался скомпилировать ADPACK, написанный на C, на Intel Mac с OX 10.6.4.Я получил следующую ошибку из команды make:

gcc -I/usr/local/include -I/home/ozaki/include -c adpack.c
adpack.c: In function ‘main’:
adpack.c:223: warning: incompatible implicit declaration of built-in function ‘strlen’
gcc -I/usr/local/include -I/home/ozaki/include -c Inputtools.c
Inputtools.c:85: error: conflicting types for ‘strcasestr’
/usr/include/string.h:88: error: previous declaration of ‘strcasestr’ was here
Inputtools.c: In function ‘strcasestr’:
Inputtools.c:96: warning: cast from pointer to integer of different size
Inputtools.c:96: warning: cast from pointer to integer of different size
Inputtools.c: In function ‘input_cmpstring’:
Inputtools.c:124: warning: format ‘%d’ expects type ‘int’, but argument 2 has type     ‘size_t’
Inputtools.c:124: warning: format ‘%d’ expects type ‘int’, but argument 3 has type     ‘size_t’
make: *** [Inputtools.o] Error 1

Я попытался преобразовать size_t в целочисленную переменную, так как я понимаю, что size_t в значительной степени хранит нетипизированный int, но приведение не сработало,Кто-нибудь сталкивался с такой ошибкой раньше?Стоит ли использовать другую версию gcc?

Спасибо.Ред.strcasestr определяется в строке 85 следующим образом: static char * strcasestr (char * str1, const char * str2)

Он определяется в string.h как char * strcasestr (const char *, const char *);

1 Ответ

3 голосов
/ 27 сентября 2010

Используйте модификатор %z , , если доступно , например,

printf( "%zu\n", sizeof( foo ) );

См .: Как можно печатать переменную size_t с помощью переноса, используясемейство printf? (возможно, дубликат) для деталей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...