ошибка: «IOV_MAX» не объявлена ​​(первое использование в этой функции) - PullRequest
4 голосов
/ 27 января 2012

Я пытаюсь установить memcached-1.2.8-repcached-2.2.1

У меня возникает следующая ошибка после запуска make:

$ make  all-recursive 
make[1]: Entering directory `/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'     
Making all in doc
make[2]: Entering directory `/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1/doc'
make[2]: Entering directory `/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
gcc -DHAVE_CONFIG_H -I.  -DNDEBUG   -g -O2 -MT memcached-memcached.o -MD -MP -MF 
.d eps/memcached-memcached.Tpo -c -o memcached-memcached.o `test -f 'memcached.c' || echo './'`memcached.c
memcached.c: In function ‘add_iov’:
memcached.c:697: error: ‘IOV_MAX’ undeclared (first use in this function)
memcached.c:697: error: (Each undeclared identifier is reported only once
memcached.c:697: error: for each function it appears in.)
make[2]: *** [memcached-memcached.o] Error 1     
make[2]: Leaving directory `/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/pro/memcached-1.2.8-repcached-2.2.1'
make: *** [all] Error 2

ОС: Centos5.7 64bit

gcc-4.1.2-51.el5

gcc-c ++ - 4.1.2-51.el5

libgcc-4.1.2-51.el5

Что-то не так с IOV_MAX в gcc, заголовках файлов и т. Д.?

Ответы [ 3 ]

1 голос
/ 30 марта 2012

Вы должны

ням удалить libevent2-devel

yum install libevent libevent-devel

1 голос
/ 31 декабря 2012

Если у вас такая же ситуация компилируется в Ubuntu 12.10 (и, возможно, в других версиях), вам необходимо установить пакет libevent1-dev.

1 голос
/ 27 января 2012

Это указывает на наличие ошибки во включаемых файлах или, возможно, включаемом пути или среде.

Как это должно быть определено просто:

memcached.c строка 33 должна определить__need_IOV_MAX
memcached.c строка 42 включает в себя stdio.h
stdio.h (в любом случае, в моей системе) строка 161 включает в себя bits/stdio_lim.h
Последние строки stdio_lim.h (строки 42-43) должныопределите это:

#if defined __need_IOV_MAX && !defined IOV_MAX
# define IOV_MAX 1024
#endif

Я пытался создать memcached, но есть что-то не так с тем, как это зависит от libevent.Это последние несколько строк из configure в Fedora 15:

...
checking for a BSD-compatible install... /usr/bin/install -c
checking for libevent directory... configure: error: libevent is required.
You can get it from http://www.monkey.org/~provos/libevent/

      If it's already installed, specify its path using --with-libevent=/dir/

[wally@lenovotower memcached-1.2.8-repcached-2.2.1]$ rpm -q libevent
libevent-2.0.10-2.fc15.i686
[wally@lenovotower memcached-1.2.8-repcached-2.2.1]$ 

Но event.h нигде в /usr/....

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