prev up next   top/contents search

comp.lang.c FAQ list · Question 13.26

Q: I'm still getting errors due to library functions being undefined, even though I'm explicitly requesting the right libraries while linking.

A: Many linkers make one pass over the list of object files and libraries you specify, and extract from libraries only those modules which satisfy references which have so far come up as undefined. Therefore, the order in which libraries are listed with respect to object files (and each other) is significant; usually, you want to search the libraries last.

For example, under Unix, a command line like

	cc -lm myprog.c		# WRONG
usually won't work. Instead, put any -l options at the end of the command line:
	cc myprog.c -lm

If you list a library first, the linker doesn't know that it needs anything out of it yet, and passes it by. See also question 13.28.

prev up next   contents search
about this FAQ list   about eskimo   search   feedback   copyright

Hosted by Eskimo North