Ответ 1
Статическая библиотека представляет собой набор из одного или нескольких объектных файлов с индексом для быстрого поиска. Есть некоторые незначительные отличия в том, как компилятор справляется с ними. С объектным файлом вы ссылаетесь следующим образом:
gcc f1.o f2.o -o myexe
с библиотеками вы также можете это сделать:
gcc f1.o libf2.a -o myexe
или вы можете использовать сокращенную версию:
gcc d1.o -lf2 -L. -o myexe
Кроме того, gcc будет ВСЕГДА связывать файлы .o, но он будет искать только библиотеки и ссылаться на них, если есть еще undefined имена.