¿Por qué clang todavía necesita libgcc.a para compilar mi código?

 C Programming >> Programación C >  >> Tags >> Clang
¿Por qué clang todavía necesita libgcc.a para compilar mi código?

Clang no viene con un enlazador, se basa en ld en cambio. Y ld depende de libgcc.a y/o libgcc.so en su sistema (independientemente de que este sea el enlazador LLVM ld.lld o GNU ld). Esta es la razón por la que aparece este mensaje de error.

Así que la respuesta es en realidad:

Muchos más detalles sobre esto están disponibles aquí en omniprog.info:


Debes compilar con la opción -nodefaultlib o -nostdlibs .

Aquí una cita de la documentación de GCC (la interfaz clang es igual):

Es posible que deba ejecutar rutinas de inicialización estáticas de c ++ y/o usar lo que proporcionan los archivos de objetos crt<x>.o en el directorio lib. Estos archivos son parte de libc y proporciona un punto de entrada ejecutable.