当我在我的ubuntu上运行libmemcached示例代码时,它给我一个错误"undefined reference to `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;
}发布于 2010-09-19 09:26:37
把-lmemcached传给GCC。这会告诉它链接到libmemcached.so共享库。
发布于 2011-01-31 19:58:16
当我构建这个库(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发布于 2011-11-21 12:04:55
打开你的终端并切换到你的libmemcached目录,这是你的C项目,右击并选择“uncompressed.
./configure
make
”库,并记得添加“库”目录(指向您的目录的链接包含libmemcached.so
https://stackoverflow.com/questions/3744156
复制相似问题