OpenGLプログラムのコンパイル(GL / gl.hがありません)


50

私は完全なLinux / Ubuntu初心者なので、この質問の愚かな部分やフォローアップについては謝罪します。

ソフトウェアエンジニアリングクラスのグループが自宅のコンピューターに書き込んだプログラムを取得しようとしています。学校にはLinuxがあり、そこでコンパイルして正常に動作します。VMWareをダウンロードし、Ubuntuを仮想マシンにインストールしました。現在、プログラムを起動しようとしています。

しかし、メイクファイルを実行しようとすると、エラーが表示されます

gcc -I../include -pthread -O1 -c rain.c
In file included from rain.c:19:0:
../include/GL/glfw.h:176:21: fatal error: GL/gl.h: No such file or directory
compilation terminated.
make: *** [rain.o] Error 1

私の学校のコンピューターでこのファイルが見つからないのに、なぜこのファイルが見つからないのか誰もが知りませんか?そして、それをダウンロードしたり、適切な場所に置いたりするために必要なことは何ですか?

回答:


84

gl.hを提供するdevパッケージは何も持っていないと思います。apt-file使用するコマンドラインツールです。

最初に、それが最新であることを確認します。

apt-file update

これで、「gl.hファイルを提供するパッケージは何ですか?」と答える検索を作成できます。

apt-file search "gl.h"

今チェックするためのubuntuボックスはありませんが、結果はmesa-devやopengl-devのようなものになると思います。

どのパッケージが "gl.h"を提供するかがわかったら(apt-fileの結果が "libmesa-dev"のふりをしましょう)、インストールします:

apt-get install libmesa-dev

aptファミリのコマンドの詳細:https : //help.ubuntu.com/community/AptGet/Howto


助けてくれてありがとう。私はあなたが提案したことを試み、検索の出力で元の投稿を更新しました。
めったに

試してみることにし、mesa-common-devパッケージをダウンロードしました。それからusr / include / GLフォルダーにナビゲートして、そこにあることがわかりました。コピー/貼り付けてプロジェクトのフォルダに移動しただけで、動作しているように見えました。しかし、その後、私のプロジェクトは "glu.h"フォルダーが必要であるというエラーを出していたので、libcgal-devパッケージをダウンロードし、コピー/ペーストで同じことをしました。それを正しいフォルダーに入れてmakeコマンドを実行すると、プロジェクトがコンパイルされて実行されます。だから助けてくれてありがとう。ここで、グラフィックを遅くする必要があります。:)
めったに

ビルドが動作するようになったことをうれしく思います!あなたのコピー/貼り付けは迅速で汚れていますが、適切に、あなたのインクルードは間違っているかもしれません。私はc ++をあまり知りませんが、ソースからパッケージをコンパイルする際に同様の問題がありました。ソリューションiircは、に変更#include <gl.h>するようなものでした#include<gl/gl.h>
djeikyb

21
ああ、パッケージの名前を教えてくれただけでなく、釣りを教えてくれてありがとう。
ブライアンケイン

2
apt-fileに関する情報をありがとう。GL / gl.hに必要なパッケージについては、次のとおりですmesa-common-dev (少なくともUbuntu 16.04の場合)
ElazarR

37

以下のためのGL/gl.h使用:

sudo apt install mesa-common-dev

これらは、たとえば次のような場合にも役立ちますGL/glu.h

sudo apt install libglu1-mesa-dev freeglut3-dev

あなたも含めることができますlibglfw3-dev libgles2-mesa-dev
rustyxを

1

ソースからglproto(link)、libdrm(link)、mesa(link)をビルドすることもできます。他の多くのパッケージにはこのヘッダーファイルが含まれている場合がありますが、ソースに移動することが重要です。これにより、インストールのメモリフットプリントが削減され、最新および/または最高のバージョンが確保されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.