X11 / Xlib.h не найден в Ubuntu - PullRequest
53 голосов
/ 14 марта 2011

Я пытаюсь написать довольно тривиальную программу, используя open gl на 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: нет такого файла или каталог </p>

Я совершенно новичок в GL и понятия не имею, что не так.

Ответы [ 4 ]

134 голосов
/ 14 марта 2011

Быстрый поиск с использованием ...

apt search Xlib.h

Включает пакет libx11-dev, но вам не нужно это для чистого программирования OpenGL.Какой учебник вы используете?

Вы можете добавить Xlib.h в вашу систему, выполнив следующее ...

sudo apt install libx11-dev
26 голосов
/ 30 ноября 2011

Предположим, он использует учебник из 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 и примеры без дальнейшей выдачи.

7 голосов
/ 08 марта 2013

Эндрю Уайта ответа достаточно, чтобы заставить вас двигаться. Вот пошаговая инструкция для начинающих.

Простое начало работы:

Создать 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

2 голосов
/ 28 октября 2016

Почему бы не попробовать find /usr/include/X11 -name Xlib.h

Если есть хит, у вас есть Xlib.h

Если не установить его с помощью sudo apt-get install libx11-dev

и тебе пора :))

...