gcc: ¿una biblioteca estática con símbolos indefinidos?
Estoy tratando de construir un proyecto usando una biblioteca estática, para que el binario se pueda usar incluso si la biblioteca no está instalada. Sin embargo, recibo muchos errores sobre símbolos indefinidos cuando intento hacerlo.
Al mirar la biblioteca, veo que tiene toneladas de símbolos indefinidos, aunque es un.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
Esos parecen ser de openssl; otros parecen ser de libbzip2; etc.
Preguntas: 1. ¿Por qué la estática (.a
) lib tiene dependencias de objetos compartidos (por ejemplo, libopenssl) que no están compilados estáticamente? 2. ¿Cómo resuelvo esto? Intentando agregar manualmente-lssl
no parece funcionar ¿Cómo consigo que el binario se compile y no tenga dependencias externas?