gcc - Uma biblioteca estática com símbolos indefinidos?
Estou tentando criar um projeto usando uma biblioteca estática, para que o binário possa ser usado mesmo se a biblioteca não estiver instalada. No entanto, recebo muitos erros sobre símbolos indefinidos quando tento fazer isso.
Olhando para a biblioteca, vejo que há muitos símbolos indefinidos, mesmo que seja um.a
lib estática:
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
Aqueles parecem ser do openssl; outros parecem ser da libbzip2; etc.
Perguntas: 1. Por que o estático (.a
) lib tem dependências em objetos compartilhados (por exemplo, libopenssl) que não são compilados estaticamente? 2. Como eu resolvo isso? Tentando adicionar manualmente-lssl
parece não funcionar. Como obtenho o binário para compilar e não tenho dependências externas?