在Ubuntu中找不到X11 / Xlib.h

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

编译thumb:egl <= cuberenderer.c从/path/include/egl.h:36包含的文件中,从/path/cuberenderer.c:7:/path/include/eglplatform.h:89:22:error:X11 /Xlib.h:没有这样的文件或目录/path/include/eglplatform.h:90:23:错误:X11 / Xutil.h:没有这样的文件或目录

我对GL完全陌生,不知道有什么问题。

快速search使用…

apt-file search Xlib.h 

打开libx11-dev软件包,但是你不应该需要这个用于纯OpenGL编程。 你正在使用什么教程?

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

 sudo apt-get install libx11-dev 

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

sudo apt-get install libx11-dev …………….. for X11/Xlib.h
sudo apt-get install mesa-common-dev ……..为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 ………………. for X11/extensions/XInput.h

之后,我可以build立glsdk_0.4.4和没有进一步问题的例子。

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

一个简单的开始:

创buildtest.cpp:(这将被build立并运行,以确认你的东西设置正确。)

 #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如果它构build到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进行testing

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

如果有一个命中,你有Xlib.h

如果不使用sudo apt-get install libx11-dev来安装它

你很好去:)