Подтвердить что ты не робот

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 и не знаю, что случилось.

4b9b3361

Ответ 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

и вам хорошо идти:)