No entiendo -Wl,-rpath -Wl,

Resuelto Blub asked hace 13 años • 5 respuestas

Para mayor comodidad, agregué las páginas de manual relevantes a continuación.

Mi (mal) entendimiento primero: si necesito separar opciones con ,, eso significa que la segunda -Wlno es otra opción porque viene antes, ,lo que significa que es un argumento para la -rpathopción.

¡No entiendo cómo -rpathse puede discutir -Wl,.!

Lo que tendría sentido en mi opinión sería esto:

-Wl,-rpath .

Esto debería invocar -rpathla opción del vinculador con el argumento del directorio actual.


hombre gcc:

-Wl,opción

Pase la opción como opción al vinculador. Si la opción contiene comas, se divide en varias opciones junto a las comas. Puede utilizar esta sintaxis para pasar un argumento a la opción. Por ejemplo, -Wl,-Map,output.mappasa -Map output.mapal vinculador. Cuando utilice el enlazador GNU, también puede obtener el mismo efecto con `-Wl,-Map=output.map'.

hombre ld:

-rpath=directorio

Agregue un directorio a la ruta de búsqueda de la biblioteca en tiempo de ejecución. Esto se utiliza al vincular un ejecutable ELF con objetos compartidos. Todos los argumentos -rpath se concatenan y se pasan al vinculador en tiempo de ejecución, que los utiliza para localizar objetos compartidos en tiempo de ejecución. La opción -rpath también se utiliza al localizar objetos compartidos que son necesarios para los objetos compartidos incluidos explícitamente en el enlace;

Blub avatar Jul 03 '11 17:07 Blub
Aceptado

La -Wl,xxxopción para gcc pasa una lista de tokens separados por comas como una lista de argumentos separados por espacios al vinculador . Entonces

gcc -Wl,aaa,bbb,ccc

eventualmente se convierte en una llamada de enlazador

ld aaa bbb ccc

En su caso, desea decir " ld -rpath .", por lo que pasa esto a gcc como -Wl,-rpath,.Alternativamente, puede especificar instancias repetidas de -Wl:

gcc -Wl,aaa -Wl,bbb -Wl,ccc

Tenga en cuenta que no hay coma entre aaay el segundo -Wl.

O, en su caso, -Wl,-rpath -Wl,..

Kerrek SB avatar Jul 03 '2011 10:07 Kerrek SB

También podrías escribir

-Wl,-rpath=.

Para deshacerse de ese molesto espacio. Podría decirse que es más legible que agregar comas adicionales (es exactamente lo que se pasa a ld).

Mike avatar Mar 27 '2013 19:03 Mike