Bryan Christ wrote: > gcc -c $(CFLAGS) $(INCLUDES) $(DEFS) *.c > ld -r -o common_tools.o *.o > > And here is how I try to link against the common object file: > > gcc -c $(CFLAGS) $(INCLUDES) $(LIBS) $(NORMAL_DEFS) *.c > ld -o myprogram *.o ../../common/common_tools.o > > I'm sure I'm missing something trivial but don't know what that is. Your final link must take care of the library references. You could substitute gcc for ld at that stage. The .o which you made by ld -r is just like any other .o.