Связывание зависимостей разделяемой библиотеки
Я работал с SFML, я скомпилировал небольшую тестовую программу и добавил опцию связывания-lsfml-audio
, Затем я использовалldd ./program
чтобы увидеть динамические библиотеки, на которые он ссылался. Удивительно, но их было много, ни один из них я не выбрал вручную в своем make-файле и не использовалpkg-config --libs
.
Я начал читать об общих библиотеках и сделал небольшой пример, чтобы решить мои сомнения. Однако у меня есть этот вопрос:
почему некоторые библиотеки нуждаются в добавлении зависимостей в ваш make-файл (вручную или с помощью скрипта, подобногоpkg-config
) а другие библиотеки автоматически связывают свои зависимости?
Когда вы создаете свою динамическую библиотеку, это так же просто, как добавить-ldependency
варианты вg++ -shared ...
Команда, чтобы избежать хлопот пользователя вручную добавлять зависимости позже. Почему многие из доступных библиотек этого не делают?
Я предполагаю, что это должно быть связано со способностью тонкой настройки, какие библиотеки связаны и тому подобное.