GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo vincular estáticamente un programa complejo

Si no puede compilar un binario estático, he obtenido buenos resultados con Statifier.


La mayoría autoconf generado configure script le permitirá hacer una compilación estática:

 ./configure --enable-static
 make

Si eso no funciona, es posible que pueda pasar las banderas del enlazador a través de LDFLAGS , así:

 ./configure LDFLAGS=-static

Supongo que está usando gcc para compilar una serie de programas c, aunque tendrás que buscar en el Makefile para averiguarlo.

Si es así, puede ajustar las líneas gcc en el archivo MAKE para hacer enlaces estáticos, aunque dependiendo de la estructura del programa, esto puede ser un cambio complejo. Eche un vistazo a man gcc para ver cómo se hace esto.

Me interesaría saber por qué estás enlazando estáticamente. ¿Ha considerado utilizar la vinculación previa en su lugar?

Debe tener en cuenta que puede haber problemas de licencia al hacer esto si todos los componentes no son GPL.


Sí, necesitas editar el archivo make y agregar el parámetro -static a gcc durante el enlace.


Linux
  1. Establecer una IP estática en Debian 11 - ¿Cómo hacerlo?

  2. ¿Cómo redirigir la salida de un programa a un archivo zip?

  3. Cómo terminar un subproceso en un programa C (ejemplo de pthread_exit)

  4. Enlace estático de función de biblioteca compartida en gcc

  5. cómo instalar gcc 4.9.2 en RHEL 7.4

Cómo instalar GCC en CentOS 7

Cómo configurar Linux como un enrutador estático

Cómo:Introducción a la programación - Control de flujo

Maneras brillantes de cómo ejecutar un programa en Linux

Cómo escribir y ejecutar un programa C en Linux

Cómo configurar la dirección IP estática en el sistema Linux