gcc - статическая библиотека с неопределенными символами?

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

Глядя на библиотеку, я вижу, что она имеет множество неопределенных символов, хотя это.a статическая библиотека:

nm - u /usr/local/lib/libthis.a
....
U EVP_DigestFinal_ex
U EVP_DigestInit_ex
U EVP_DigestUpdate
U EVP_MD_CTX_cleanup
U EVP_MD_CTX_init

Те, кажется, из openssl; другие, похоже, из libbzip2; и т.п.

Вопросы: 1. Почему статический (.a) lib имеют зависимости от общих объектов (например, libopenssl), которые не компилируются статически? 2. Как мне это решить? Попытка добавить вручную-lssl не похоже на работу. Как получить двоичный файл для компиляции и не иметь внешних зависимостей?

Ответы на вопрос(1)

Ваш ответ на вопрос