Thank you Azat. The different name had escaped me. I am sure using the new name will solve the linker's undefined symbol.
Spotting the wrong -levent helps too. Hopefully 2.1 solves my deadlock problem too as it has been suggested in other posts. Best, -Marco G. Sent from my iPhone > On Feb 10, 2015, at 8:52 AM, Azat Khuzhin <[email protected]> wrote: > >> On Tue, Feb 10, 2015 at 7:47 PM, Marco Graziano <[email protected]> >> wrote: >> Sorry for the truncated email. >> >> Getting a linker error using libevent 2.1: >> >> marcog@marcog-VirtualBox:~/Cometa/cometa-mt/server$ make >> cc -Wall -g -I./include -L/usr/local/lib -levent -o cometa cometa.o >> request.o http_parser.o config.o rsyslog.o response.o routes.o api.o info.o >> webhooks.o websockets.o -l:libevent-2.1.so.5 -l:libevent_pthreads-2.1.so.5 >> -lpthread -lcrypto -lm -ldl -lwebsock -lconfig -lssl -lworkqueue -lbeanstalk >> /usr/bin/ld: cometa.o: undefined reference to symbol >> 'event_base_add_virtual' >> /usr/local/lib/libevent-2.0.so.5: error adding symbols: DSO missing from >> command line >> collect2: error: ld returned 1 exit status >> make: *** [cometa] Error 1 >> >> While everything is fine with libevent 2.0: >> >> marcog@marcog-VirtualBox:~/Cometa/cometa-mt/server$ make >> cc -Wall -g -I./include -L/usr/local/lib -levent -o cometa cometa.o > > Could you test without "-levent" I guess that > /usr/local/lib/libevent.so is linked to 2.0 > (Also please avoid top-posting.) > >> request.o http_parser.o config.o rsyslog.o response.o routes.o api.o info.o >> webhooks.o websockets.o -l:libevent-2.0.so.5 -l:libevent_pthreads-2.0.so.5 >> -lpthread -lcrypto -lm -ldl -lwebsock -lconfig -lssl -lworkqueue -lbeanstalk >> >> The symbol is defined in both libraries: >> >> marcog@marcog-VirtualBox:~$ nm /usr/local/lib/libevent-2.1.so.5 | grep >> event_base_add_virtual >> 0000000000022b80 T event_base_add_virtual_ >> marcog@marcog-VirtualBox:~$ nm /usr/local/lib/libevent-2.0.so.5 | grep >> event_base_add_virtual >> 00000000000134f0 T event_base_add_virtual >> >> And the linker cache seems fine: >> >> marcog@marcog-VirtualBox:~/Cometa/cometa-mt/server$ ldconfig -p | grep >> libevent >> libevent_pthreads-2.1.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_pthreads-2.1.so.5 >> libevent_pthreads-2.0.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_pthreads-2.0.so.5 >> libevent_openssl-2.1.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_openssl-2.1.so.5 >> libevent_extra-2.1.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_extra-2.1.so.5 >> libevent_extra-2.0.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_extra-2.0.so.5 >> libevent_core-2.1.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_core-2.1.so.5 >> libevent_core-2.0.so.5 (libc6,x86-64) => >> /usr/local/lib/libevent_core-2.0.so.5 >> libevent-2.1.so.5 (libc6,x86-64) => /usr/local/lib/libevent-2.1.so.5 >> libevent-2.0.so.5 (libc6,x86-64) => /usr/local/lib/libevent-2.0.so.5 >> >> I am considering 2.1 because of a deadlock with a bufferevent implicit lock >> (using flags BEV_OPT_CLOSE_ON_FREE | BEV_OPT_THREADSAFE)) with a pthread >> write lock. >> >> Any suggestion would be greatly appreciated. >> >> -Marco G. > *********************************************************************** > To unsubscribe, send an e-mail to [email protected] with > unsubscribe libevent-users in the body. *********************************************************************** To unsubscribe, send an e-mail to [email protected] with unsubscribe libevent-users in the body.
