Qt 找不到 GL/gl.h 但 libGL.so 存在

Qt 找不到 GL/gl.h 但 libGL.so 存在

我正在运行 64 位 Ubuntu 14.04。

我收到的编译错误是:

In file included from ../../../Qt/5.4/gcc_64/include/QtOpenGL/qgl.h:39:0,
                 from ../../../Qt/5.4/gcc_64/include/QtOpenGL/qglshaderprogram.h:37,
                 from ../../../Qt/5.4/gcc_64/include/QtOpenGL/QGLShaderProgram:1,
                 from glwidget.h:5,
                 from glwidget.cpp:1:
../../../Qt/5.4/gcc_64/include/QtGui/qopengl.h:122:21: fatal error: GL/gl.h: No such file or directory
 #  include <GL/gl.h>
                     ^

奇怪的是,我似乎已经正确安装了 libGL.so,并将其符号链接到我的 Nvidia 343 显示驱动程序(我假设它也安装了 OpenGL 驱动程序)安装的 OpenGL 库。

$ ls -l /usr/lib | grep -i libgl
lrwxrwxrwx  1 root root           17 Jan 15 12:47 libGLESv1_CM.so -> libGLESv1_CM.so.1
lrwxrwxrwx  1 root root           22 Jan 15 12:47 libGLESv1_CM.so.1 -> libGLESv1_CM.so.343.36
-rwxr-xr-x  1 root root        48248 Jan 15 12:47 libGLESv1_CM.so.343.36
lrwxrwxrwx  1 root root           14 Jan 15 12:47 libGLESv2.so -> libGLESv2.so.2
lrwxrwxrwx  1 root root           19 Jan 15 12:47 libGLESv2.so.2 -> libGLESv2.so.343.36
-rwxr-xr-x  1 root root        62352 Jan 15 12:47 libGLESv2.so.343.36
-rw-r--r--  1 root root          654 Jan 15 12:47 libGL.la
lrwxrwxrwx  1 root root           10 Jan 15 12:47 libGL.so -> libGL.so.1
lrwxrwxrwx  1 root root           15 Jan 15 12:47 libGL.so.1 -> libGL.so.343.36
-rwxr-xr-x  1 root root      1274520 Jan 15 12:47 libGL.so.343.36

我看过一些以前的帖子建议这样做

sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

但当我尝试这样做时,它将我支持的 OpenGL 版本(由 glxinfo 输出)降级为 v1.4。而且我不确定为什么这样做会有帮助。

这是我的 glxinfo 输出。

$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 970/PCIe/SSE2
OpenGL core profile version string: 4.3.0 NVIDIA 343.36
OpenGL core profile shading language version string: 4.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.4.0 NVIDIA 343.36
OpenGL shading language version string: 4.40 NVIDIA via Cg compiler
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:

谢谢

答案1

关于Qt 文档

Linux 版 Qt 安装程序假定主机操作系统提供了 C++ 编译器、调试器、make 和其他开发工具。此外,构建图形 Qt 应用程序需要安装 OpenGL 库和头文件。大多数 Linux 发行版默认不会安装所有这些,但设置开发环境仍然很简单。

使用以下命令安装构建 Qt 应用程序的基本要求:

sudo apt-get install build-essential libgl1-mesa-dev

答案2

啊,正如 @steeldriver 指出的那样,标题和库是不同的东西,执行以下操作可以解决问题:

sudo apt-get install mesa-common-dev

这将安装所需的标题。

相关内容