So what are they exactly? If I remember correctly, then SDL uses .a file too. At linking time I just had to -lSDL and a file called libSDL.a was linked. I also had to include a header called SDL/SDL.h or something like that.
if libSDL.a contains definitions of functions, then why can't the definitions be in a .o file? Thus, at linking time, I'd just link the .o file and be done with it.