[Date Prev][Date Next]
Re: compiling and berkeley db
> i'm hoping tha t someone can shed some light on this because i've never
> had this problem before.
> i'm compiling openldap on a solaris 8 box using gcc 2.95. it requires
> berkeley db 3 and of course berkeley db's always install into weird
> places, in this case the package i snagged installed into
> /usr/local/BerkeleyDB.3.0. so in order for ./configure to find the
> libraries i had to do this:
> # export LDFLAGS="-L/usr/local/BerkeleyDB.3.0/lib"
> # export CPPFLAGS="-I/usr/local/BerkeleyDB.3.0/include
> it all compiled fine, however now when i go to run the program it gives
> sunlab(root)# /usr/local/libexec/slapd
> ld.so.1: /usr/local/libexec/slapd: fatal: libdb-3.0.so: open failed: No such file or directory
> and you can see that it can't find it:
> sunlab(root)# ldd /usr/local/libexec/slapd
> libdb-3.0.so => (file not found)
> i suppose i can set some environment variable (LD_PATH or something
> right?) in the script that starts slapd but that's kinda messed up, or i
> can link libdb-3.0.so into /usr/lib but that's an accident waiting to
> happen (though it's what i'm doing right now and solves the problem).
> so the only other solution i can find is to pass "-R" to ld in the
> makefile. this seems like the correct solution but i've never had to do
> this before when compiling stuff using libraries in non-standard
> locations. is this a deliberate choice of how openldap is setup or is
> this an oddness of my setup?
> in either case if it's not a bug what's the recommended solution?
Right, change LDFLAGS to
export LDFLAGS="-L/usr/local/BerkeleyDB.3.0/lib -R/usr/local/BerkeleyDB.3.0/lib"
This isn't odd at all. Apparently, so far, you've just been lucky.