2017-07-22 2 views
-2

Xcode 8.3.2でSDL2(最新のOSXバイナリ)、C++、OpenGLを使用しています。コードからSDL2関数を呼び出すだけであれば、プロジェクトはうまくいきます。しかし、コードにOpenGL関数呼び出しを含めると、コンパイルに失敗します。私は既にファイルヘッダに<OpenGL/gl3.h>を含めています。SDLプロジェクトでOpenGL関数を呼び出してOSXでコンパイルできない

enter image description here 関連するコード:Display.hで

#ifndef Display_h 
#define Display_h 

#include <iostream> 
#include <SDL2/SDL.h> 
#include <OpenGL/gl3.h> 
... 

Display.cpp中:しかし、私は、コード内の任意のOpenGLのメソッドを呼び出したときに、コンパイル時に次のエラーを取得しています

void Display::Clear(float r, float g, float b, float a) 
{ 
    glClearColor(r,g,b,a); 
} 

私は

+0

[よくある質問はどうすればよいですか?](https://stackoverflow.com/help/how-to-ask)と[最小限で完全で検証可能な例を作成する方法](https:///stackoverflow.com/help/mcve)。 – Rabbid76

答えて

0
OSX 10.12を実行しています

問題は解決しました。プロジェクトの "Build Phases"> "Link Binary With Libraries"でOpenGLフレームワークを追加する必要がありました。私はすでにSDL2のためにそれをしました。しかし、私もOpenGLで同じことをする必要があることを知らなかった。

+0

はい、もちろんです。実際には、再帰的な依存関係が暗黙のうちに暗黙のうちに引き込まれた場合、実際にはかなり悪いことです。より便利かもしれません。しかし明示的なケースでは、エラーメッセージ(実行時にも)は理解するのがずっと簡単です。なぜなら、開発者はあなたのプログラムに何が含まれているのか、そうでないのかを特に知っているからです。 – datenwolf

関連する問題