4

Mac でオープン ソースの C++ アプリケーションをコンパイルしようとしました。GL/gl.h ファイルが見つかりませんというエラーが表示されます。これは、コンパイルして実行する必要がある開いている GL ライブラリが見つからないことを意味することを知っています。これからどうしようか迷っているので

  1. OS X には、open gl のサポートが組み込まれているようです。ダウンロードするものはありません。
  2. OSX と Linux の OpenGL では、ヘッダー ファイル名が異なる可能性があるようです ( OS X と Linux の OpenGL ヘッダー) 。

ということで、次に何をしようか迷っています。OpenGL をダウンロードして自分のプロジェクトにリンクしますか? OpenGL のネイティブ バージョンを使用するように xcode を構成する必要がありますか? ヘッダーを変更しますか?

誰かがもう少し方向性を提供できますか。この回答はWindows / Linuxの回答を提供しましたが、OS Xではありません: GLライブラリ/ヘッダーを取得する方法は?

4

2 に答える 2

10

Apple は、それらが他の誰とも互換性がなく、OpenGL ヘッダーをOpenGLnot justという名前のディレクトリに配置した方が賢明だと考えましたGL。したがって、使用する必要があります

#include <OpenGL/gl.h>

Apple システム上および

#include <GL/gl.h>

他のどこでも。ここでは、コンパイラの定義済みプリプロセッサ マクロが役に立ちます。

#ifdef __APPLE__
#  include <OpenGL/gl.h>
#else
#  include <GL/gl.h>
#endif/*__APPLE__*/
于 2013-10-01T23:41:59.223 に答える
1

「OS XにはOpenGLの組み込みサポートが含まれています」は正しいです!

Windowsもそうです!しかし問題は、Windows では OpenGL 1.1 の機能にしかアクセスできないということです。これより上のすべては、拡張機能を介して行う必要があります。OpenGL 拡張機能は次の場所にあります: http://www.opengl.org/registry/

しかし、これらの拡張機能をセットアップするのは非常に退屈なので、GLEWなどを使用できます...

もう 1 つの非常に一般的な問題は、Windows で OpenGL コンテキストを適切に開く方法です。NeHeのような古いチュートリアルに従っていると、最近ではいくつかの問題が発生します。解決策は、 GLFW、 glut 、 freeglut などを使用することです...

この「コンテキスト + 拡張機能」のペアを使用すると、コンテキストを簡単に作成し、おそらく OS X で使用している「最新の OpenGL」関数から任意の関数を使用できるようになります。私は特に「GLFW + GLEW」を好みます!

于 2013-10-02T00:03:11.900 に答える