Если вы связываете libcurl статически, тогда конечный пользователь не требует libcurl, так как он будет связан с исполняемым файлом непосредственно во время компиляции.
Если вы связываете libcurl динамически, то конечный пользователь требует, чтобы libcurl был установлен в их системе и доступен как библиотека общих объектов.
Однако вы находитесь в другом месте. Вы пишете библиотеку для использования другими разработчиками. Таким образом, ваш конечный пользователь на самом деле не является конечным пользователем. В таких сценариях «лучше» обеспечить динамическую связь с libcurl.
Если вы создадите статическую ссылку, ваша библиотека инкапсулирует в своем коде копию библиотеки libcurl. Теперь представьте, что разработчик, использующий вашу библиотеку, также использует 10 других библиотек, статически связанных с libcurl. Этот разработчик в основном собирается включить 10 копий libcurl в свой конечный продукт. Это не очень эффективно, и поэтому при разработке библиотеки предпочтительнее динамическое связывание с зависимостями.
Однако ...
Если разработчик использует 10 разных библиотек, для которых требуется libcurl, но для некоторых из этих библиотек требуется более старая / более новая версия, чем для других, статическое связывание будет полезно.
Надеюсь, это поможет ...