"X11/Xlib.h": нет такого файла или каталога на 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, у меня установлен xQuartz.
Я скомпилирую эту программу с помощью команды "g++ -o ex ex.cpp -L/usr/X11R6/lib -lX11".
Ответы
Ответ 1
вам нужно скомпилировать с помощью:
g++ -o ex ex.cpp -I/usr/X11R6/include -L/usr/X11R6/lib -lX11
заголовки X11
установлены с xQuartz
, но вам нужно явно ссылаться на них
Если вы устанавливаете xQuartz
, он устанавливается в /opt/X11
, а /usr/X11
и /usr/X11R6
являются символическими ссылками на это местоположение
Ответ 2
Вам может потребоваться добавить символическую ссылку в папку X11:
sudo ln -s/opt/X11/include/X11/usr/local/include/X11
В моем случае я должен был включить каталог include в usr/local
.
Ответ 3
Это решение работало для меня на ruby-1.9.3-p362 на Mavericks.
sudo ln -s /opt/X11/include/X11 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/