Зависит от типа библиотеки.
1. В исходниках - фактически просто исходный код, который вы включаете в состав своего кода. Компилируется только то, что используется.
2. Статическая либа - либа уже в виде бинарника, включается в состав исполняемого файла, как есть.
3. Динамическая линковка - исполняемый файл содержит сведения для ОС, что ему нужно подгрузить такую-то dllку.
Dllка при первом вызове грузится в ОЗУ целиком, и вся цепочка dll-ок с которой она связана.
(Вариант загрузки dll-на-ходу - по сути то же самое).
Тут есть такой нюанс - если я в настройках проекта указал линк с какой-то dllкой (или статичной либой), и даже подинклюдил хэдер от нее, но ... не использовал ни один символ из библиотеки, не вызвал ни одну функцию ... то линкер выбросит все ссылки на либу и конечная программа никак с либой не будет связана (при некоторых условиях, мне это пару непонятных проблем подкидывало :) ).