it-swarm-es.tech

Xlib.h no encontrado al construir graphviz en Mac OS X 10.8 (Mountain Lion)

Cuando se usa homebrew para instalar graphviz, el script llega al punto de "Hacer la instalación en tkstubs" y luego arroja el siguiente error fatal:

In file included from tkStubLib.c:15:
/usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found
#include <X11/Xlib.h>

He instalado XQuartz ya que X11 se ha caído en Mountain Lion, pero no estoy seguro de si está instalado correctamente. La ubicación de Xlib.h es:

/opt/X11/include/X11/Xlib.h

También hay dos enlaces simbólicos a/opt/X11, que son:

/usr/X11
/usr/X11R6

¿Te parece la configuración correcta? Nunca he tratado con X11 o XQuartz hasta ayer.

Salud.

39
AntBrown

Debe indicarle a la compilación tkstubs (y posiblemente también a otros bits del paquete) que busque encabezados en /opt/X11/include; esto no está en la ruta de inclusión estándar.

Por lo general, esto se logra pasando -I/opt/X11/include como un indicador de compilador adicional, sin embargo, el método para hacerlo depende del sistema de compilación.

Para guiones razonablemente modernos de configure, el mejor enfoque es pasarlo en la variable de entorno CPPFLAGS; si el paquete usa otro sistema de compilación o esto no funciona por otra razón, entonces necesita mirar Makefile en el directorio de compilación.

28
Simon Richter

Después de instalar XQuartz, puede agregar un enlace simbólico a su carpeta de instalación X11 simplemente ingresando

ln -s /opt/X11/include/X11 /usr/local/include/X11

en terminal. Eso también solucionará el problema sin cambiar ningún script Ruby.

109
Daniel Münter

Puede ingresar en su Shell antes del comando compilar/vincular (o preparar):

export CPPFLAGS=-I/opt/X11/include

La línea de exportación le indicará al compilador/enlazador que busque/opt/X11/include para los archivos de inclusión X11

26
Robert J Berger

Tuve el mismo problema y ejecuté este comando en la terminal

xcode-select --install 

trabajó para mi. Ejecute este comando después de instalar xQuartz .

5
Abdul Jamil

Si necesita que esto funcione en sus compilaciones de CMake:

if(Apple)
   include_directories(AFTER "/opt/X11/include")
endif()

Eso funcionó bien para mí.

3
Robert Massaioli

Lo instalé copiando el directorio del archivo de encabezado x11 en el directorio/opt/local/include. Probablemente no sea la mejor manera de solucionarlo, pero es rápido y fácil.

2
denson

Dado que el archivo make busca X11/xlib.h, es decir, busca la carpeta X11 en el directorio actual, una forma de resolver este problema es simplemente copiar el directorio/opt/X11/include/X11 en el directorio que contiene hacer archivo.

1
Data Scientist

Encontré este hilo al intentar compilar ffmpeg desde la fuente en OS X. Necesitaba --enable-x11grab y la compilación homebrew no admite esta opción.

Ya tenía XQuartz instalado pero seguía recibiendo errores de ./configure: ERROR: Xlib not found. Pensé que las respuestas aquí resolverían mi problema, ¡pero no lo hicieron!

Entonces, si alguien alguna vez está en el mismo barco, mi solución fue esta:

Abrí el config.log generado y encontré muchos errores que se refieren a varios archivos de cabecera e inclusión, incluidos X11/Xlib.h, esto es engañoso. En la parte inferior del archivo de registro estaba la clave, pkg-config se quejaba de buscar xbc.pc, y solicitó que se pusiera en el camino. Sin embargo, el mensaje de error que se muestra en el terminal no dice nada sobre pkg-config o xbc!

La solución es agregar a su variable de entorno PKG_CONFIG_PATH. La mía era inexistente, así que acabo de hacer export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig/ (la carpeta donde encontré xbc.pc).

Reran configure y todo funcionó como un encanto!

TL; DR: verifique config.log - ¡no confíe en la salida del terminal!

1
Monkpit