What is the difference between LDADD and LIBADD?

Use the LIBADD primary for libraries, and LDADD for executables. If you were building a libtool library libfoo.la, that depended on another library libbar.la, you would use:

libfoo_la_LIBADD = libbar.la

If you had other non-libtool libraries, you would also add these with -L and -l options:

libfoo_la_LIBADD = libbar.la -L/opt/local/lib -lpng

Typically, you would use the configure script to find these extra libraries, and use AC_SUBST to pass them with:

libfoo_la_LIBADD = libbar.la $(EXTRA_FOO_LIBS)

For a program, just use LDADD :

myprog_LDADD = libfoo.la # links libfoo, libbar, and libpng to myprog.

Sometimes the boundaries are a bit vague. $(EXTRA_FOO_LIBS) could have been added to myprog_LDADD. Adding dependencies to a libtool (.la) library, and using libtool do all the platform-specific linker magic, is usually the best approach. It keeps all the linker metadata in the one place.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)