0

現在Freeglutを使用しているOpenGLアプリケーションでジオメトリシェーダーを使用しようとしています.GLEWを使用してそれを実行しようとしています.私が理解しているように、ジオメトリシェーダー機能は拡張機能であるためです. 私の組み込み順序は次のとおりです。

   #define GLEW_STATIC
   #include <glew.h>
   #include "freeglut.h"

ただし、これを行うと、次のような多くのリンカー エラーが発生します。

   error LNK2001: unresolved external symbol ___glewAttachShader

基本的な OpenGL 機能 (つまり、拡張機能に含まれていないもの) のみを使用してもエラーは発生しないため、コンパイラが glu32 などのすべての「基本的な」ライブラリを検出していることがわかります。Visual Studio 2008 を使用しています。 。 助言がありますか?

4

1 に答える 1

2

glew エントリポイントが見つからなかったことを示すリンカー エラーです。

glew ライブラリにリンクします (拡張機能を使用していないため、以前はエラーが表示されなかったと思います)。

編集:実際、これは「GLEW_STATIC」の使用に直接関係しています。

GLEWページから:

Windows では、提供されたプロジェクト ファイル glew_static.dsp をワークスペース (ソリューション) に追加し、他のプロジェクトと一緒にコンパイルするオプションもあります。この場合、スタティック ライブラリまたは実行可能ファイルをビルドするときに、GLEW_BUILD プリプロセッサ定数を GLEW_STATIC に変更する必要もあります。そうしないと、ビルド エラーが発生します。

つまり、GLEW_STATIC セットアップを使用する場合は、glew ソース ファイルをビルドしてインクルードするのはユーザーの責任です。

于 2010-10-28T08:58:34.547 に答える