libmemcached проблема - PullRequest
       8

libmemcached проблема

0 голосов
/ 19 сентября 2010

Когда я запускаю пример кода libmemcached на моем Ubuntu, он дает мне ошибку «неопределенная ссылка на memcached_create», кто-нибудь может помочь?спасибо

#include <libmemcached/memcached.h>

int main(int argc, char **argv) {  
  //memcached_servers_parse (char *server_strings); 
  memcached_server_st *servers = NULL;
  memcached_st *memc;
  memcached_return rc;
  char *key= "keystring";
  char *value= "keyvalue";

  memc= memcached_create(NULL);
  servers= memcached_server_list_append(servers, "localhost", 11211, &rc);   rc= memcached_server_push(memc, servers);

  if (rc == MEMCACHED_SUCCESS)
    fprintf(stderr,"Added server successfully\n");   else
    fprintf(stderr,"Couldn't add server: %s\n",memcached_strerror(memc, rc));

  rc= memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);

  if (rc == MEMCACHED_SUCCESS)
    fprintf(stderr,"Key stored successfully\n");   else
    fprintf(stderr,"Couldn't store key: %s\n",memcached_strerror(memc, rc));

  return 0;

}

Ответы [ 3 ]

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

Пропуск -lmemcached в GCC.Это говорит о необходимости ссылки на общую библиотеку libmemcached.so.

0 голосов
/ 21 ноября 2011
  1. откройте свой терминал и перейдите в каталог libmemcached, который не распакован.
  2. тип ./configure
  3. тип make
  4. в вашем проекте C, щелкните правой кнопкой мыши и выберите «Свойства». В "linker" добавьте библиотеку "libmemcached.so" и не забудьте добавить каталог библиотеки (ссылки на ваш каталог содержат libmemcached.so).
0 голосов
/ 31 января 2011

Когда я собираю библиотеку (libmemcached), она создает только статическую библиотеку, а когда я связываю свою программу (упомянутую выше), она дает мне

$ gcc MyMemClient.c  -o MyMemClient -L/usr/local/lib/libmemcached.a
/tmp/ccQEXVjv.o:MyMemClient.c:(.text+0x1f): undefined reference to `_memcached_create'
/tmp/ccQEXVjv.o:MyMemClient.c:(.text+0x58): undefined reference to `_memcached_server_list_append'
//ccQEXVjv.o:MyMemClient.c:(text+0x6d): undefined reference to `_memcached_server_push'
/tmp/ccQEXVjv.o:MyMemClient.c:(.text+0xc1): undefined reference to `_memcached_strerror'
/tmpccQEXVjv.o:MyMemClient.c:(.text+0x12a): undefined reference to `_memcached_set'
/tmp/ccQEXVjv.o:MyMemClient.c:(.text+0x170): undefined reference to `_memcached_strerror'
/tmp/ccQEXVjv.o:MyMemClient.c:(.text+0x199): undefined reference to `_memcached_server_free'
//ccQEXVjv.o:MyMemClient.c:(.text+0x1a4): undefined reference to `_memcached_free'
ld returned 1 exit status
...