Hi, Trond. If I link with a dynamic version of libevent, I needn't reset the LD_LIBRARY_PATH variable when I start the memcached. But, if I link with a dynamic version of libmemcached, I must reset the LD_LIBRARY_PATH variable when I execute my application program. Could you tell me the secret? Thank you very much! --- 11年8月17日,周三, Trond Norbye <[email protected]> 写道:
发件人: Trond Norbye <[email protected]> 主题: Re: install memcached with libevent? 收件人: [email protected] 日期: 2011年8月17日,周三,下午1:11 On Wed, Aug 17, 2011 at 5:29 AM, 然 安 <[email protected]> wrote: If I compiled memcached with dynamic libevent library, I must have the libevet library in the correct directory each time when I start the memcached. I can't start a memcached server on the other computer only with the compiled executive memcached file. Static linking aslo means that if you ever find a bug in libevent you would have to recompile _all_ of the applications that use libevent to have them run with a version without the bug, and your operating system can't share the memory pages for the code implementing libevent between all processes using libevent... When I compiled memcached with a static libevent library, it told me to configure the libevent library path using --with--libevent. In fact, I have done it in the same way. My linux version is Red Hat Enterprise Linux AS release 4 (Nahant Update 3) and kernel version is 2.6.9_5-7-0-0. When you link with a static version of libevent you need to provide all of the libraries used by libevent on your platform in the link flags. I don't use RHEL, so I don't know which "backend" it use (or which library it needs for that). I guess the easiest for you would be to add "-lrt" to LDFLAGS before running configure (probably needed by the timers in there), and then look in config.log to see which symbols it can't find when it tries to link with libevent (and add them LDFLAGS). Trond
