Процесс компиляции / компоновки в C ++ сложен, но обычно следует по этому пути.
cpp / hpp-> obj
obj -> lib (.a) для статической библиотеки или obj-> dll (.so) для динамической библиотеки
obj, lib, dll -> exe
Процесс компоновки будет принимать obj и статические библиотеки и формировать автономный exe.Компоновщик делает exe-файл зависимым от dll, но exe-файл не будет содержать динамическую библиотеку.
Отвечая на ваши вопросы, exe и dll (s) понадобятся во время выполнения.Файлы obj и static lib явно не понадобятся во время выполнения.