web-dev-qa-db-fra.com

X11 / Xlib.h introuvable dans Ubuntu

J'essaie d'écrire un programme plutôt trivial en utilisant open gl sur Linux, mais à la compilation, il est écrit:

Compiler le pouce: egl <= cuberenderer.c Dans le fichier inclus à partir de /path/include/egl.h:36, à partir de /path/cuberenderer.c:7: /path/include/eglplatform.h:89:22: error: X11 /Xlib.h: Aucun fichier ou répertoire de ce type /path/include/eglplatform.h:90:23: erreur: X11/Xutil.h: Aucun fichier ou répertoire de ce type

Je suis totalement nouveau chez GL) et je ne sais pas ce qui ne va pas.

56
Denys S.

Une recherche rapide en utilisant ...

apt search Xlib.h

Active le paquet libx11-dev mais vous ne devriez pas en avoir besoin pour la programmation OpenGL pure. Quel tutoriel utilisez-vous?

Vous pouvez ajouter Xlib.h à votre système en lançant la commande suivante ...

Sudo apt install libx11-dev
140
Andrew White

Supposons qu'il utilise le tutoriel de http://www.arcsynthesis.org/gltut/ avec premake4.3 :-)

Sudo apt-get install libx11-dev ................. pour X11/Xlib.h
Sudo apt-get install mesa-common-dev........ pour GL/glx.h
Sudo apt-get install libglu1-mesa-dev ..... pour GL/glu.h
Sudo apt-get install libxrandr-dev ........... pour X11/extensions/Xrandr.h
Sudo apt-get install libxi-dev ................... pour X11/extensions/XInput.h

Après quoi, je pourrais construire glsdk_0.4.4 et des exemples sans autre problème.

27
Bob Smith

La réponse d'Andrew White est suffisante pour vous faire bouger. Voici une étape par étape pour les débutants.

Une simple mise en route:

Create test.cpp: (Ceci sera construit et exécuté pour vérifier que tout est bien configuré.)

#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;
}

(Source: LinuxGazette)

Essayez: g++ test.cpp -lX11 S'il se construit à a.out, essayez de le lancer. Si vous voyez une fenêtre simple dessinée, vous avez les bibliothèques nécessaires et un autre problème racine se prépare.

Si votre réponse est:

    test.cpp:1:22: fatal error: X11/Xlib.h: No such file or directory
    compilation terminated.

vous devez installer les bibliothèques de développement X11. Sudo apt-get install libx11-dev

Recommencez g++ test.cpp -lX11

Si cela fonctionne, vous êtes en or.

Testé à l'aide d'une nouvelle installation de libX11-dev_2% 3a1.5.0-1_i386.deb

7
Stokes

Pourquoi ne pas essayer find /usr/include/X11 -name Xlib.h

S'il y a un hit, vous avez Xlib.h

Si ce n'est pas le cas, utilisez Sudo apt-get install libx11-dev

et vous êtes prêt à partir :)

3
Zohaib Amanzai