2012-07-28 20 views
6

Por lo tanto, todos sabemos que Mountain Lion ya no se envía con X11 y los usuarios que necesiten X11 están obligados a descargar Xquartz. Xquartz se instala en /opt, pero también enlaces simbólicos X11 y X11R6 a /usr. Pero cuando construyo un software que requiera enlazar a X11 incluye archivos, descubrí que debo pasar una variable de entorno agregando /usr/X11/include (o /opt/X11/include) a la ruta de búsqueda de la biblioteca para obtener ./configure para encontrar las bibliotecas X11. Mi pregunta es ¿por qué?¿Por qué OS X 10.8 Mountain Lion no encuentra bibliotecas X11 cuando desarrolla software?

que he hecho algunas investigaciones sobre Google (muchos resultados apuntan de nuevo a desbordamiento de pila), y he leído la documentación de Apple, y todas estas fuentes indican que no hay equivalente en OS X para el archivo que se encuentra en /etc/ld.so.conf muchas (si no todas) las distribuciones de Linux. Apple incluso dice que DYLD_LIBRARY_PATH está vacío por defecto. Sin embargo, en Lion (con el último X11 "oficial" de Apple instalado), las mismas secuencias de comandos ./configure encontrarían las bibliotecas X11 sin agregar nada a la ruta de búsqueda de la biblioteca.

Entonces, ¿Por qué no se pueden ./configure guiones encontrar librerías X11 en Mountain Lion sin una modificación explícita de la ruta de búsqueda de la biblioteca?

+0

¿Cuál es un ejemplo de una aplicación X11 que está intentando configurar ... y el resultado de la configuración? Si descargo [xpdf] (http://www.foolabs.com/xpdf/), por ejemplo, está buscando mis X libs en Mountain Lion y no creo que haya hecho nada especial (aparte de instalar XQuartz) – Stennie

+0

Específicamente, Ruby 1.8.7. Puede ver el problema y la solución aquí: http: // stackoverflow.com/questions/11664835/mountain-lion-rvm-install-1-8-7-x11-error Como dije en la pregunta original, he "solucionado" el problema. Me preguntaba si alguien sabe por qué este comportamiento es diferente en Mountain Lion con Xquartz en comparación con Lion con Apple X11. –

Respuesta

1

hecho más que hace un año ... pero como he venido aquí con un problema similar ...

Nótese que en la cuestión de rubí se ha mencionado, no había la ruta de búsqueda está modificando. Esa solución simplemente establece una variable de entorno que muchos Makefiles recogen como indicadores para el compilador de C++. Ese ejemplo definió el tiempo de compilación -I ncludepath, es decir, dónde buscar .h eaders - no bibliotecas (que habría sido una opción -L para su compilador/vinculador). Ambos habrían sido tiempo de compilación opciones. Si LD_LIBRARY_PATH o DYLD_LIBRARY_PATH: ambas son variables de entorno consideradas por el vinculador dinámico en runtime. (Para más información, véase http://en.wikipedia.org/wiki/Dynamic_linker)

que no tienen pre-10.8 de la máquina a mano, pero supongo que podría haber sido un enlace simbólico /usr/include/X11 ->/opt/X11/include/X11 - de lo contrario no tengo idea de cómo atm que podría haber trabajado antes, suponiendo mismas fuentes ...

Ésta es otra posible solución para este tipo de problemas (justo fijo mi realvnc acumulación):

$ autoconf 
$ ./configure 

Entonces, la pregunta para "¿por qué?" podría responderse con: Debido a que sus fuentes contenían un script de configuración "preconstruido" que estaba basado en autotools más antiguas que no incluían /opt/X11/include como una ubicación potencial para buscar X11, incluye o simplemente no obtuvo algunas de los indicadores de tiempo de compilación mencionados anteriormente directamente en su sistema actual. Tengo autoconf instalado a través de homebrew - ahh, cosas geniales, aplausos.

Cuestiones relacionadas