2012-07-14 24 views
18

Digamos que tengo un archivo muy simple C (llamado foo.c):Bibliotecas predeterminadas vinculadas por gcc?

int main() 
{ 
    printf("foo"); 
    return 0; 
} 

Ahora me llaman gcc:

gcc foo.c 

Cuando me llaman gcc (sin opciones, al igual que en los anteriores ejemplo), ¿con qué bibliotecas están vinculadas por defecto y dónde están ubicadas? (En Mac OS X 10.7)

Respuesta

22

La opción -v a gcc hará que para volcar la información sobre las opciones por defecto que utilizará incluyendo las rutas de bibliotecas y librerías por defecto y los archivos de objetos que se van a enlazar en.

Si le da la opción -Wl,--verbose, gcc pasará el --verbose al enlazador, que se volcará exactamente donde está buscando las bibliotecas, incluidas las búsquedas fallidas y exitosas.

combinar ambas opciones, y verá exactamente lo que las bibliotecas están en el mismo, y por qué están siendo vinculados en.

gcc -v foo.c -Wl,--verbose 
+0

En mi mac, ld dice que --verbose es una opción no reconocida – user1516425

+1

@ user1516425: oh - cuando veo 'gcc', asumo que GNU' ld' está involucrado. Mirando algunos documentos para el enlazador de Xcode, https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/ld.1.html, es posible que desee ver si el '-t 'la opción del enlazador hará el truco. Algunas otras opciones a considerar se pueden encontrar en el encabezado "Opciones para introspección del enlazador" en esa página. –

-1

Las bibliotecas estándar están vinculadas por defecto. que se encuentran en/usr en máquinas Linux

+2

'PATH' no se usa para eso. – zwol

Cuestiones relacionadas