plotter flag compiler compilador c gcc

flag - gcc linux install



Inhibir las rutas de la biblioteca por defecto con gcc (4)

¿Qué hay de configurar la variable de entorno LIBRARY_PATH ?

Si entiendo la pregunta correctamente, desea hacer algo como forzar al vinculador a mirar una ruta de la biblioteca local antes de la ruta predeterminada, por lo que puede establecer esa variable explícitamente para controlar el orden.

¿Hay alguna forma de inhibir la búsqueda de la ruta de la biblioteca predeterminada con gcc? -nostdinc hace esto para la búsqueda de ruta de inclusión, pero -nostdlib , ya sea por omisión o por diseño, solo inhibe la -lc -lgcc etc. pero no las rutas de búsqueda de la biblioteca.


Deberías poder hacer esto con los archivos de especificaciones (aunque para mí, juguetear con estos me parece un arte oscuro ...).

Si observa la salida de gcc -dumpspecs , la especificación link_command es la que genera el comando real que se invoca. Examinando algunas de las otras especificaciones a las que hace referencia, la especificación link_libgcc , que generalmente se define (al menos para los compiladores nativos) como:

*link_libgcc: %D

es el culpable:

%D

Descargue una opción -L para cada directorio que GCC cree que podría contener archivos de inicio. Si el destino admite multilibs, el directorio multilib actual se añadirá a cada una de estas rutas.

Puede anularlo creando un archivo (por ejemplo, my.specs ) que sustituya las rutas de su elección:

*link_libgcc: -L/foo/bar -L/blah/blah

y luego pasar -specs=my.specs a gcc .


Puede probar -nodefaultlibs para evitar todas las bibliotecas predeterminadas, luego usar -L y -l para agregar las bibliotecas que desee en los directorios que desee. Los directorios especificados en la línea de comandos con la opción -L deben tener prioridad sobre los directorios predeterminados.


Suponiendo que el cargador subyacente es ld es posible que pueda redirigir toda su ruta de carga con

--sysroot=directory

(No recuerdo la opción que tienes que usar para pasar los argumentos del cargador a gcc, pero hay uno ...)

Puede hacer que "directorio" sea algo falso, donde no se encuentran bibliotecas, o imitar el diseño del directorio para su propio proyecto.