在Ubuntu中找不到X11 / Xlib.h


72

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

编译thumb: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完全陌生,不知道出了什么问题。


如果libx11-dev已安装,请添加链接器选项-lX11g++ input.cpp -lX11 [...]
Suuuehgi '19

Answers:


166

使用...的快速搜索

apt search Xlib.h

打开软件包libx11-dev,但对于纯OpenGL编程,您不需要此软件包。您正在使用什么教程?

您可以通过运行以下命令将Xlib.h添加到系统中...

sudo apt install libx11-dev

尽管已安装libx11-dev,但apt-file没有任何结果。我正在尝试采用amazon.com/Pro-Android-Games-Vladimir-Silva/dp/1430226471/…的第5章中的资源,以简化ndk-build的使用。
Denys S.

事实是,本章附带两个示例,一个基于Java的示例和一个带C代码的jni。Java部分效果很好,但我根本无法编译C代码。
Denys S.

找到它后,如果没有重新启动外壳,apt-find似乎无法完全正常工作。奇怪...
Denys S.

1
感谢您不仅告诉安装哪个软件包,还指出了将来如何解决类似问题。
Frerich Raabe

2
在Ubuntu 18.04中,最后一次编辑用代替apt-file searchapt searchapt search似乎只搜索包(如apt-cache)。到目前为止,我仅用apt作改进的apt-get/ apt-cache。如果apt没有一个适合您,请尝试apt-file
hsandt

33

假设他正在使用http://www.arcsynthesis.org/gltut/中的教程以及premake4.3 :-)

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

之后,我可以构建glsdk_0.4.4和示例,而不会出现其他问题。


你最懂我心。我想您没有lgl库的命令吗?:)编辑:没关系,您也回答了-去构建glsdk_0.4.4!再次感谢!
NickO 2014年

9

安德鲁·怀特(Andrew White)的答案足以让您感动。这是针对初学者的循序渐进指南。

一个简单的入门:

创建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进行了测试


3

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

如果有成功,您将拥有Xlib.h

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

而且你很好:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.