1. ホーム
  2. c++

GLライブラリ/ヘッダーの入手方法を教えてください。

2023-10-19 14:58:52

質問

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

これは例ですが、GLヘッダはどこで取得するのでしょうか?

どのように解決するのですか?

ウィンドウズ

Windows では 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ドライバのバージョン番号です。また gl.h ヘッダも含める必要があります。これは通常、Mesa または Xorg パッケージの一部です。これもまた、以下のものが必要かもしれません。 glext.hglxext.h から http://www.opengl.org/registry . glxext.h は GLX 拡張を保持し、同等の wglext.h に相当します。

に移動した機能なしで、OpenGL 3.x または OpenGL 4.x の機能を使用したい場合、その機能を使用することができます。 GL_ARB_compatibility 拡張に移された機能なしで、OpenGL 3.x または OpenGL 4.x の機能を使いたい場合は、新しい gl3.h ヘッダを使用します。これは gl.h を置き換え、さらに glext.h を使うこともできます (コア機能だけを必要とする限りは)。

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