X11/Xlib.h не найден в Ubuntu
Я пытаюсь написать довольно тривиальную программу, используя open gl on linux, но во время компиляции он говорит:
Скомпилируйте большой палец: egl <= cuberenderer.c В файле, включенном в /path/include/egl.h:36, от /path/cuberenderer.c:7: /path/include/eglplatform.h:89:22: Ошибка: X11/Xlib.h: Нет такого файла или каталог /path/include/eglplatform.h:90:23: Ошибка: X11/Xutil.h: Нет такого файла или Каталог
Я совершенно не знаком с GL и не знаю, что случилось.
Ответы
Ответ 1
Быстрый поиск с использованием...
apt search Xlib.h
Включает пакет libx11-dev, но вам не нужно это для чистого программирования OpenGL. Какой учебник вы используете?
Вы можете добавить Xlib.h в свою систему, выполнив следующее...
sudo apt install libx11-dev
Ответ 2
Предположим, что он использовал учебник из http://www.arcsynthesis.org/gltut/ вместе с premake4.3:-)
sudo apt-get install libx11-dev
................. для X11/Xlib.h
sudo apt-get install mesa-common-dev
........ для GL/glx.h
sudo apt-get install libglu1-mesa-dev
..... для GL/glu.h
sudo apt-get install libxrandr-dev
........... для X11/extensions/Xrandr.h
sudo apt-get install libxi-dev
................... для X11/extensions/XInput.h
После чего я мог бы построить glsdk_0.4.4 и примеры без дополнительной проблемы.
Ответ 3
Эндрю Уайт ответ достаточно, чтобы заставить вас двигаться. Здесь шаг за шагом для новичков.
Простой запуск:
Создать test.cpp: (Это будет построено и запущено, чтобы убедиться, что вы правильно настроили настройки.)
#include <X11/Xlib.h>
#include <unistd.h>
main()
{
// Open a display.
Display *d = XOpenDisplay(0);
if ( d )
{
// Create the window
Window w = XCreateWindow(d, DefaultRootWindow(d), 0, 0, 200,
100, 0, CopyFromParent, CopyFromParent,
CopyFromParent, 0, 0);
// Show the window
XMapWindow(d, w);
XFlush(d);
// Sleep long enough to see the window.
sleep(10);
}
return 0;
}
(Источник: LinuxGazette)
Попробуйте: g++ test.cpp -lX11
Если он строится на a.out
, попробуйте запустить его.
Если вы видите простое окно, у вас есть необходимые библиотеки, и возникает другая проблема с корнем.
Если ваш ответ:
test.cpp:1:22: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
вам нужно установить библиотеки разработки X11.
sudo apt-get install libx11-dev
Повторить g++ test.cpp -lX11
Если это сработает, вы золотые.
Протестировано, используя новую установку libX11-dev_2% 3a1.5.0-1_i386.deb
Ответ 4
Почему бы не попробовать find /usr/include/X11 -name Xlib.h
Если есть удар, у вас есть Xlib.h
Если не установить его с помощью sudo apt-get install libx11-dev
и вам хорошо идти:)