[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: Solaris 10 and openldap - help needed.



I *am* trying to use static libraries.  Appols for the confusion over
the -L and -l.  I am now trying things more directly:

$ /usr/sfw/bin/gcc -I/usr/local/opt/openldap/openldap-2.3.27/include
/usr/local/opt/openldap/openldap-2.3.27/lib/libldap.a
/usr/local/opt/openldap/openldap-2.3.27/lib/liblber.a  ldaptest.c
Undefined                       first referenced
 symbol                             in file
ldap_dn2ad_canonical                /var/tmp//ccUaa9gP.o
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status

Doing this with 2.3.30 is no help either:

$ /usr/sfw/bin/gcc -I/usr/local/opt/openldap/openldap-2.3.30/include
/usr/local/opt/openldap/openldap-2.3.30/lib/libldap.a
/usr/local/opt/openldap/openldap-2.3.30/lib/liblber.a  ldaptest.c
Undefined                       first referenced
 symbol                             in file
ldap_dn2ad_canonical                /var/tmp//cc2EWpQ9.o
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status

Why is this symbol not found with the static libraries?
With the dynamic ones things go fine:

$ /usr/sfw/bin/gcc -I/usr/local/opt/openldap/openldap-2.3.27/include
/usr/local/opt/openldap/openldap-2.3.27/lib/libldap.so
/usr/local/opt/openldap/openldap-2.3.27/lib/liblber.so  ldaptest.c
$ ldd a.out
        libldap-2.3.so.0 =>      (file not found)
        liblber-2.3.so.0 =>      (file not found)
        libc.so.1 =>     /lib/libc.so.1
        libm.so.2 =>     /lib/libm.so.2

I believe that this is an openldap issue not a Solaris one.

Regards,

Rob


> -----Original Message-----
> From: Aaron Richton [mailto:richton@nbcs.rutgers.edu]
> Sent: 06 December 2006 22:46
> To: Robert Bannocks
> Cc: openldap-software@openldap.org; Quanah Gibson-Mount
> Subject: Re: Solaris 10 and openldap - help needed.
> 
> >> With the command line
> >> /usr/sfw/bin/gcc -I/usr/local/opt//openldap/openldap-2.3.27/include
> >> -L/usr/local/opt/openldap/openldap-2.3.27/lib/libldap.a
> >> -L/usr/local/opt/openldap-2.3.27/lib/liblber.a ldaptest.c
> >
> > Your paths on your -L lines don't match.
> 
> For that matter, I think you're confusing big L with little l.
Typically
> you'd, assuming those paths are right,
> 
> gcc -I/usr/local/opt/openldap/openldap-2.3.27/include -
> L/usr/local/opt/openldap/openldap-2.3.27/lib -lldap -llber ldaptest.c
> 
> big L is search path, little l is library name (-lfoo =>
libfoo.{a,so})
> 
> 
> Looks like you're trying to use .a static libraries. If you use .so
shared
> libraries, you'll probably want an RPATH. You can Google for that or
ask
> the Solaris community for help.