2012-08-29 19 views
5

DMD 2.60 en Ubuntu 12.04 ... Quiero crear un binario estático, para que pueda ejecutarlo en un entorno antiguo. dmd no tiene indicador '-estático'. he intentado pasar la bandera '-static' al enlazador con "-L-estática ... DMD" - mensaje de error obtenerCómo compilar binarios estáticos?

/usr/bin/ld: cannot find -lgcc_s 

compilar código C con "gcc -static ..." funciona bien. ¿Es algo que extraño? Gracias!

+0

Siempre puedes intentar compilar solo fuentes D y usar LD manualmente para vincular ... Creo que nunca lo intenté, pero parece que vale la pena intentarlo. – DejanLekic

Respuesta

3

It doesn't currently work if you use dmd to link debido a cómo pasa las banderas del vinculador al vinculador. Necesita compilar todo con -c para generar archivos de objetos y luego vincularlos manualmente con gcc o ld.

Debo señalar que, en general, vincular estáticamente glibc se considera una mala idea. Puede funcionar y ser la solución correcta en su caso, pero definitivamente tiene problemas potenciales (aunque no recuerdo los detalles). Entonces, probablemente no deberías hacerlo a menos que realmente lo necesites.