Потому что вы не связываете это, чисто и просто.
Связывание - это процесс объединения всех ваших объектных файлов и библиотек для создания исполняемого файла. В статическом проекте библиотеки вы не создаете исполняемый файл, вы просто создаете библиотеку, которая позже будет связана.
Например (а это UNIX, а не Windows, но концепции похожи), вы бы использовали компилятор cc
, чтобы превратить ваши исходные файлы в объектные файлы, и архиватор ar
, чтобы превратить их в библиотеку. Компоновщик (или редактор связей) ld
не должен принимать участие, пока вы не захотите перейти к следующему шагу и включить вашу библиотеку в исполняемый файл.