gcc
y ld
proporcionan muchas formas de especificar una ruta de búsqueda para bibliotecas, entre ellas, los indicadores -rpath
y -L
. Las páginas de manual no revelan diferencias entre estos dos indicadores, y efectivamente dicen que cada indicador agrega una biblioteca a la ruta de búsqueda de la biblioteca. Sin embargo, parece extraño que ambas banderas hagan exactamente lo mismo. ¿Cuáles son las diferencias, si las hay, entre estas dos opciones?
gcc
linker
shared-libraries
ld
Craig M. Brandeburgo
fuente
fuente
-rpath-link
?Respuestas:
Debe estar leyendo algunas copias desactualizadas de las páginas de manual (énfasis agregado):
vs.
Por lo tanto,
-L
indicald
dónde buscar bibliotecas para vincular al vincular. Use esto (por ejemplo) cuando esté compilando contra bibliotecas en su árbol de compilación, que se colocará en las rutas normales de la biblioteca del sistema pormake install
.--rpath
, por otro lado, almacena esa ruta dentro del ejecutable, de modo que el enlazador dinámico en tiempo de ejecución pueda encontrar las bibliotecas. Use esto cuando sus bibliotecas están fuera de la ruta de búsqueda de la biblioteca del sistema.fuente
-rpath=/some/weird/path
,-L /some/weird/path
también se necesita . 2. Congcc
una necesidad de uso-Wl,-rpath=dir
.