This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Installing Courier-Imap
Kees Vonk wrote:
> >>/home/Kees/courier-imap-3.0.8/makedat/makedatprog.c:33: undefined
> >>reference to `_gdbmobj_store'
> >
> >
> > Try adding --with-db=gdbm to your configure line.
> >
>
> Ok I tried this, but as I suspected no luck.
>
> However what I did notice is that makedatprog.c includes ../dbobj.h,
> this file defines (for example) dbobj_init as gdbmobj_init (which exists
> in ../gdbmobj/gdbmobj.h), however the error above complains about not
> finding _gdbmobj_init, which does not exist anywhere. Can anyone explain
> to me where the initial '_' comes from, and if that is the problem. I
> realise I am probably showing my ignorance of C programming here, but
> any kind of help would be greatly appreceated.
All of those gdbm_* functions are implemented in the files under
gdbmobj, which should produce libgdbmobj.a. If you look at the
configure.in for makedat, you see:
case "$db" in
gdbm)
USE_GDBM=1
USE_DB=0
LIBDB=""
dblibrary=../gdbmobj/libgdbmobj.a
;;
db)
USE_DB=1
USE_GDBM=0
LIBGDBM=""
dblibrary=../bdbobj/libbdbobj.a
;;
*)
makedatprog_target=""
esac
...then in Makefile.ac you have:
makedatprog_LDADD=@dblibrary@ @LIBGDBM@ @LIBDB@
...all of which means that:
1. the make should build the stuff in gdbmobj dir (resulting in
libgdbmobj.a) before entering makedat;
2. the link command for makedat should have libgdbmobj.a on its command
line so that it can find the functions that are showing up as missing.
The initial _ is nothing to worry about, that happens to all C
functions.
If you are going to figure this out you have to make sure that both 1
and 2 are happening.
You DO have the 'libgdbm-devel' package installed, right?
Brian
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/