puedo construir un ejecutable con gcc con enlace estático:¿Es posible construir una biblioteca compartida con la biblioteca usada de enlace estático?
gcc -o -static xxx.c xxx
, así que puede funcionar sin ningún tipo de biblioteca xxx externo independiente.
Pero, ¿y si quiero construir una biblioteca compartida sin una biblioteca dependiente de externel? lo cual quiero decir que quiero la biblioteca compartida enlazado estáticamente su referencia externel en
@Inshalla, creo que el problema es que posible que podamos enlazar dos .so a uno . Hasta ahora lo intenté y fallé. –
Consulte el enlace '" SO: combine .so libs "' en mi respuesta. Parece que no hay una manera fácil de combinar bibliotecas dinámicas a menos que se hayan vinculado con el indicador '--relocatable' (consulte la página de manual de ld (1)). – Inshallah
@Inshallah: si desea vincular un código que no sea de PIC a un objeto compartido, puede usar los indicadores "-mimpure-text" de gcc. El código no PIC en objetos compartidos funciona bien, pero tiene algunas compensaciones (las páginas de códigos no se pueden compartir entre procesos y requieren espacio de intercambio, las reubicaciones ralentizan la carga del objeto compartido aunque pueden ser ligeramente más rápidas en tiempo de ejecución ya que el código PIC es ~ 5% más lento). –