2010-10-05 7 views

Respuesta

6

Los directorios se buscan en el orden en que se especifican en la línea de comandos. Los directorios especificados en la línea de comando se buscan antes que los directorios predeterminados. Todas las opciones de -L se aplican a todas las opciones -l, independientemente del orden en que aparezcan las opciones. LD_LIBRARY_PATH también se puede usar para complementar la ruta de búsqueda de la biblioteca. La búsqueda en el directorio se detiene en el primer directorio que contiene la biblioteca correspondiente.

LD_LIBRARY_PATH es difícil sin embargo:

LD_LIBRARY_PATH 

una lista de directorios en los que buscar bibliotecas especificados con la opción -l. Varios directorios están separados por dos puntos. En el caso más general, contendrá dos listas de directorios separados por un punto y coma :

dirlist1; dirlist2 

Si ld se llama con cualquier número de ocurrencias de L, como en:

ld . . . -Lpath1 . . . -Lpathn . . . 

entonces el pedido ruta de búsqueda es:

  dirlist1 path1 . . . pathn dirlist2 LIBPATH 

Cuando la lista de directorios no contiene un punto y coma, es interpretado como dirlist2.

LD_LIBRARY_PATH también se utiliza para especificar los directorios de búsqueda de bibliotecas en el vinculador de tiempo de ejecución. Es decir, si existe LD_LIBRARY_PATH en el entorno , el enlazador en tiempo de ejecución será buscar en los directorios nombrados en ella, antes de su directorio por defecto, por objetos compartidos a estar vinculados con el programa en ejecución.

Por favor, lee más al respecto here.

+0

Solo para confirmar, ¿es correcto que LD_LIBRARY_PATH se considere después de todas las opciones -L? – Leonid

+0

No, en realidad no. Depende si contiene un punto y coma o no. Si no lo hace, entonces va después de todo -L; en caso contrario, liste antes de que el punto y coma pase primero, luego todas las opciones -L, luego liste después de un punto y coma. Actualizaré mi respuesta, porque es difícil encontrar esto en ese gran documento. También tenga en cuenta que esto se aplica al enlazador Sun, no al de GNU. No estoy seguro de cuál estás usando. –

Cuestiones relacionadas