Почему некоторые статические библиотеки (lib*.a) могут быть связаны таким же образом, как общие библиотеки (lib*.so) связаны (ld -l переключаться), а некоторые не могут?
Меня всегда учили, что все библиотеки, статические или нет, могут быть связаны с -l..., однако до сих пор я столкнулся с одной библиотекой (GLFW), которая ничего не делает, кроме ссылки "неопределенная ссылка" ошибки, если я попытаюсь связать это таким образом.
Согласно ответу на этот вопрос, «правильный» способ компоновки статических библиотек — включать их напрямую вместе с моими собственными объектными файлами, а не использовать -l. А в случае с библиотекой GLFW это, безусловно, решает проблему. Но любая другая статическая библиотека, которую я использую, отлично работает, когда связана с -l.
Итак: