РЕДАКТИРОВАТЬ: Ответ предполагает, что вы спрашиваете с точки зрения разработки программного обеспечения.
Наличие файла библиотеки отдельно от кода вашего приложения представляет собой наилучший подход. Помимо статического и динамического связывания библиотечных файлов и приложений, ваш библиотечный файл должен содержать логически / семантически связанный код. Такое структурирование «разбивает» ваш код на части программного обеспечения, которые можно использовать повторно, и которые можно загружать в другие библиотеки и приложения. Эта практика способствует слабой связи и является предпочтительным методом проектирования и реализации программного обеспечения.
При подходе с одним проектом у вас будут все те же объектные файлы, которые компилируются при необходимости (как в подходе с отдельной библиотекой). Только те измененные файлы получат свои объектные файлы заново сгенерированы соответственно. Однако вы все равно получите совершенно новый файл библиотеки / приложения.
В качестве примера преимущества использования первого подхода (номер 1) вы можете наложить отдельную «тестовую» библиотеку для модульного тестирования вашей автономной библиотеки, при этом вам не нужно заново включать или перестраивать вашу автономную библиотеку. Вы используете автономную библиотеку во время внесения изменений в свою библиотеку тестов (например, добавление, изменение, удаление юнит-тестов).
Надеюсь, это поможет!