Связывание зависимостей разделяемой библиотеки

Я работал с SFML, я скомпилировал небольшую тестовую программу и добавил опцию связывания -lsfml-audio . Затем я использовал ldd ./program, чтобы увидеть динамические библиотеки, на которые он ссылался. Удивительно, но их было много, ни один из них я не выбрал вручную в моем make-файле и не использовал pkg-config --libs .

Я начал читать об общих библиотеках и привел небольшой пример, чтобы развеять мои сомнения. Однако у меня есть вопрос:

почему некоторым библиотекам нужно, чтобы вы добавляли зависимости в ваш make-файл (вручную или с помощью сценария вроде pkg-config ) и других {{1 }} библиотеки автоматически связывают свои зависимости?

Когда вы создаете свою динамическую библиотеку, это так же просто, как добавление правильных параметров -ldependency в g ++ -shared ... , чтобы пользователю не пришлось вручную добавлять зависимости позже. Почему многие из доступных библиотек этого не делают?

Я думаю, это должно быть связано с возможностью точной настройки, какие библиотеки подключаются и тому подобное.

5
задан José Tomás Tocino 22 September 2011 в 00:08
поделиться