web-dev-qa-db-ja.com

GLライブラリ/ヘッダーを取得する方法は?

#include <gl\gl.h> 
#include <gl\glu.h> 
#include <gl\glaux.h>

これは例ですが、GLヘッダーを取得する場所はどこですか?

66
cdxf

Windowsでは、OpenGL 1.1をサポートするためにgl.hヘッダーを含め、OpenGL32.libに対してリンクする必要があります。両方とも Windows SDK の一部です。さらに、 http://www.opengl.org/registry から取得できる次のヘッダーが必要になる場合があります。

  • <GL/glext.h> -OpenGL 1.2以降の互換性プロファイルと拡張インターフェイス。
  • <GL/glcorearb.h> -OpenGL 4.3仕様の付録G.2に記載されているOpenGLコアプロファイルとARB拡張インターフェイス。互換性プロファイルでのみ見つかったインターフェイスは含まれません。
  • <GL/glxext.h> -GLX 1.3以上のAPIおよびGLX拡張インターフェース。
  • <GL/wglext.h> -WGL拡張インターフェース。

Linux

Linuxでは、libGL.soに対してリンクする必要があります。これは通常、libGL.so.1へのシンボリックリンクですが、グラフィックドライバーの一部である実際のライブラリ/ドライバーへのシンボリックリンクです。たとえば、私のシステムでは、実際のドライバーライブラリの名前はlibGL.so.256.53です。これは、使用しているnvidiaドライバーのバージョン番号です。また、通常はMesaまたはXorgパッケージの一部であるgl.hヘッダーを含める必要があります。繰り返しますが、 http://www.opengl.org/registryglext.hおよびglxext.hが必要になる場合があります。 glxext.hは、GLX拡張を保持します。これは、Windowsのwglext.hと同等です。

GL_ARB_compatibility拡張に移動した機能なしでOpenGL 3.xまたはOpenGL 4.xの機能を使用する場合は、レジストリWebページから新しいgl3.hヘッダーを使用します。 gl.hglext.hも置き換えます(コア機能のみが必要な場合)。

最後になりましたが、glaux.hはOpenGLに関連付けられたヘッダーではありません。あなたはひどいNEHEチュートリアルを読んで、それと一緒に行ったと思います。 Glauxは、圧縮されていないビットマップを読み込むための恐ろしく時代遅れのWin32ライブラリ(1996)です。 libPNGなど、アルファチャネルもサポートしているものを使用してください。

77
Mads Elvheim

Linux

Sudo apt-get update
OpenGL: Sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

ライブラリとヘッダーファイルを配置するVisual Studioフォルダーを見つけ、libファイルをダウンロードしてlibフォルダーにコピーし、ヘッダーファイルをheaderにコピーします。次に、dllファイルをsystem32にコピーします。その後、コードは100%実行されます。

また、Windows:これらすべてのインクルードについては、glut32.libglut.hglut32.dllをダウンロードするだけです。

34
Amir Zadeh

Visual Studioの場合:

//OpenGL
#pragma comment(lib, "opengl32")
#pragma comment(lib, "glu32")
#include <gl/gl.h>
#include <gl/glu.h>

ヘッダーはSDKにあります:C:\ Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl

8
anno

どのオペレーティングシステムですか?

ここUbuntuでは、私は持っています

$ dpkg -S /usr/include/GL/gl.h 
mesa-common-dev: /usr/include/GL/gl.h
$ 

ただし、a)大文字化とb)スラッシュの違いではありません。あなたの例では、バックスラッシュの使用が間違っている可能性があります。

4

Windowsを使用している場合、プラットフォームSDK(またはVisual Studio)と共にインストールされます。ただし、ヘッダーファイルはOpenGL 1.1とのみ互換性があります。それ以降のバージョンの新しい機能のために関数ポインタを作成する必要があります。使用しようとしているOpenGLのバージョンを明確にしてください。

2
Mark Ingram