在Ubuntu中找不到X11 / Xlib.h

时间:2011-03-14 14:31:59

标签: linux opengl-es compiler-errors

我正在尝试使用linux上的open gl编写一个相当简单的程序,但是在编译时它说:

  

编译拇指: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完全不熟悉并且不知道出了什么问题。

4 个答案:

答案 0 :(得分:131)

使用...快速搜索

apt search Xlib.h

打开libx11-dev软件包,但纯粹的OpenGL编程不需要这个。您正在使用什么教程?

您可以通过运行以下内容将Xlib.h添加到您的系统中......

sudo apt install libx11-dev

答案 1 :(得分:25)

假设他正在使用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 和示例而无需进一步的问题。

答案 2 :(得分:6)

安德鲁怀特的回答足以让你感动。这是初学者的一步一步。

一个简单的入门:

创建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;
}

(Source: 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进行测试

答案 3 :(得分:2)

为什么不试试find /usr/include/X11 -name Xlib.h

如果有点击,你有Xlib.h

如果没有使用sudo apt-get install libx11-dev

安装它

你很高兴去:)