2013-01-14 14 views
11

mi sono imbattuto in questo quando mi è stato la compilazione di un semplice programma:"X11/Xlib.h": Nessun file o directory su Mac OS X Mountain Lion

#include <X11/Xlib.h> 
#include <stdio.h> 
#include <stdlib.h> 

Display* display; 

int main(){ 
    display = XOpenDisplay(""); 
    if (display == NULL) { 
     printf("Cannot connect\n"); 
     exit (-1); 
    } 
    else{ 
     printf("Success!\n"); 
     XCloseDisplay(display); 
    } 
    } 

FYI, ho installato XQuartz. Compilando questo programma con il comando "g ++ -o ex ex.cpp -L/usr/X11R6/lib -lX11".

+1

XQuartz dispone di intestazioni? Potrebbe essere necessario installarli separatamente. –

+0

Hai installato il pacchetto "strumenti della riga di comando" per XCode? Le intestazioni in/usr/include/X11' potrebbero essere distribuite con questo. –

risposta

12

è necessario compilare con:

g++ -o ex ex.cpp -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 

i X11 intestazioni vengono installati con xQuartz, ma è necessario fare riferimento in modo esplicito

Se si installa xQuartz installa in /opt/X11 e /usr/X11 e /usr/X11R6 sono collegamenti simbolici a questa posizione

22

Potrebbe essere necessario aggiungere un collegamento simbolico alla cartella X11 di:

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

Nel mio caso, ho dovuto fare includere directory sotto usr/local.

+0

Fantastico! Questo lo ha fatto per me. Grazie per la pubblicazione. – Malcolm

+0

Risolto per me! –

2

Questa soluzione ha funzionato per me per Ruby-1.9.3-p362 su Mavericks.

sudo ln -s /opt/X11/include/X11 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ 
Problemi correlati