2010-09-27 5 views
36

Cuando trato de instalar el siguiente programa:ld: biblioteca no se encontró para -lcrt0.o en OSX 10.6 con gcc/ruido metálico bandera -static

#include <stdio.h> 

int main(void) 
{ 
    printf("hello world\n"); 
    return 0; 
} 

En OS X 10.6.4, con las siguientes banderas :

gcc -static -o blah blah.c 

devuelve esto:

ld: library not found for -lcrt0.o 
collect2: ld returned 1 exit status 

alguien más ha encontrado esto, o es algo que nadie más ha visto afectada con todavía? ¿Alguna solución?

Gracias

Respuesta

46

Esto no va a funcionar. Desde la página de mangcc:

Esta opción no funcionará en Mac OS X a menos que todas las bibliotecas (incluyendo libgcc.a) también se han compilado con -static. Como no se proporciona una versión estática de libSystem.dylib ni crt0.o, esta opción no es útil para la mayoría de las personas.

+0

Gracias. Me es útil simplemente porque estoy interesado en la ingeniería inversa: P – browneye

+1

@browneye - ¿Pudiste averiguar cómo realizar ingeniería inversa en mac sin estática? – triple

0

También puede probar LLVM enlazador LLD - Hice la versión pre-compilados para mis dos principales sistemas operativos - https://github.com/VerKnowSys/Sofin-llds

Éste me permite vincular a exmple: "Qemu" correctamente - lo cual es imposible con ld preinstalado por Manzana.

Y la última es - para construir GCC usted mismo con libstdC++ (no).

+0

También vale la pena mencionar que podría necesitar LLVM 3.9 con compilado en libC++ para soportar "-static -lC++" pasado al enlazador. – dmilith

Cuestiones relacionadas