I'm building something from source and I get the following output while running make:
...
CC libpromises_la-mod_outputs.lo
CC libpromises_la-unix.lo
CCLD libpromises.la
CC cfknow.o
CC manual.o
CCLD cf-know
./.libs/libpromises.so: undefined reference to `dlerror'
./.libs/libpromises.so: undefined reference to `dladdr'
./.libs/libpromises.so: undefined reference to `dlclose'
./.libs/libpromises.so: undefined reference to `dlopen'
./.libs/libpromises.so: undefined reference to `dlsym'
collect2: ld returned 1 exit status
gmake[2]: *** [cf-know] Error 1
gmake[2]: Leaving directory `/tmp/cfengine/cfengine-3.1.5/src'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/tmp/cfengine/cfengine-3.1.5/src'
gmake: *** [all-recursive] Error 1
I've googled a bit and it seems that the linker can't find certain files. I've never had to deal with something like this so I'm wondering if someone can help me decode this message and shed insight on WHICH file can't be found and how I can tell the linker where it is.
I know that the reference comes from libpromises.so, which is a binary file. Hence, opening it in vi only gives me garble. Am I supposed to be looking for libpromises.h? libpromises.c?