nicolas dumont wrote: > Hello, > > I am using clamav-0.95 with my own daemon that use libclamav > > During the initialization I have the message : > LibClamAV Warning: Cannot dlopen: file not found - unrar support unavailable > > I would like to link my daemon with the libclamunrar_iface.a and libclamunrar.a > in order to have all libraries inside my binary. > > Is there a way in my Makefile or elsewhere to have the libclamunrar > directly called > inside my binary without modifying the call to > lt_dlopenext("libclamunrar_iface") ? > > Best regards, > Nicolas Dumont. > Hi Nicholas, I am also compiling ClamAV into a library and opening it with a dlopen() call. The technique I use is: /configure make I then merge together the different ClamAV libs using this command: ld -shared -o clamav.lib clamav-0.94.2/libclamav/.libs/libclamav.a clamav-0.94.2/libclamunrar_iface/.libs/libclamunrar_iface.a clamav-0.94.2/libclamunrar/.libs/libclamunrar.a -lbz2 -lgmp -lpthread -lz Which creates a file called clamav.lib that can be passed to dlopen(). There are a couple of notes. Which libraries you dynamically link against when using ld will vary depending on your platform and how ClamAV configures itself. For example, on my system I don't actually link against pthread specifically because I know the program I'm using is already linked against the pthread library. On Cent OS 4/Red Hat Enterprise 4 specifically, I need to pass the --disable-zlib-vcheck parameter to configure and I need to manually edit the libclamav makefiles to pass -O1 instead of -O2 to gcc or all of the free() calls will be optimized away inside the cl_free() function. See this bug for details: https://bugzilla.redhat.com/show_bug.cgi?id=490253 If anyone knows of a better way to do this, or finds any problems with using ClamAV this way, please let me know... Ladar _______________________________________________ http://lurker.clamav.net/list/clamav-devel.html Please submit your patches to our Bugzilla: http://bugs.clamav.net