I am always confused when a build system tells me that it found undefined reference to something. It is pretty clear that undefined reference error is related to the final linking, and therefore it is releated to the LDFLAGS
variable in the build system. But how to find what does exactly package want? For instance, if the package links -lm
it means that it wants libm
, but I have faced many more of these flags, and sometimes I have no idea where are they come from even after looking through buildsystem. Is there a general way to figure this out, or some tips?
how to find what does exactly package want
Read its documentation.
Most open-source packages should come with a Makefile
or a configure
script, which should set things up correctly for you.
Is there a general way to figure this out?
As an end-user, and assuming you've read the documentation, if a project doesn't build, you should file bugs against it so its Makefile
or configure
could be fixed.