[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [Libevent-users] Re: undefined reference to event_base_add_virtual in libevent 2.1
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 <a3at.mail@xxxxxxxxx> wrote:
>
>> On Tue, Feb 10, 2015 at 7:47 PM, Marco Graziano <marco@xxxxxxxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxx with
> unsubscribe libevent-users in the body.
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users in the body.