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:
ありがとう
ああ、@ steeldriverが指摘しているように、ヘッダーとライブラリは異なるものであり、次のことを行うことで問題が修正されました。
Sudo apt-get install mesa-common-dev
これにより、必要なヘッダーがインストールされます。
Qt doc の場合:
LinuxのQtインストーラーは、C++コンパイラー、デバッガー、make、およびその他の開発ツールがホストオペレーティングシステムによって提供されることを前提としています。さらに、グラフィカルなQtアプリケーションを構築するには、OpenGLライブラリとヘッダーがインストールされている必要があります。ほとんどのLinuxディストリビューションでは、これらすべてがデフォルトでインストールされるわけではありませんが、開発環境のセットアップは簡単です。
次のコマンドを使用して、Qtアプリケーションを構築するための基本的な要件をインストールします。
Sudo apt-get install build-essential libgl1-mesa-dev