2012-02-08 36 views
3

私はGLEWは私のプログラムでは正常にリンクすることができません。のOpenGL/GLEW:未解決の外部_glewInit

私は私のプロジェクトで正しいパスを持っています(私は三重チェックしました)、私はx86ライブラリ(すべて4-the-s、-mxsなど)とx64ライブラリを使って最初から構築しようとしました。

私の代わりにプロパティに私のプロジェクトを構成するのに#pragmaディレクティブを使用して試してみました。

私は何のDLLが必要ではないだろうので、静的libにとしてそれを取得しようとしています。

ビルド手順が助言として、私はまたGLEW_STATICは、定義されています。

エラーメッセージ:

OGLInit.obj:エラーLNK2019:未解決の外部シンボル_glewInit 0 が関数で参照@ "BOOL __stdcall vexal :: OGLStartup(無効)" (OGLStartup @ vexal @@ YG_NXZ )

私はdumpbinを使ってinitGlewが存在することを確認しました。それは外部である。

また、libが見つかりました。

検索 C:\ユーザーはジェイク\ドキュメント\ \ Vexal2 \ vexal \ vc9_x86 \ libに\デバッグ\ GLEW.lib:私はここにアイデアが不足してきました

。どんな助け?

+0

静的なglewライブラリにリンクしていて、実際にはdllのプロキシとして機能する 'インポート'ライブラリには100%確実にリンクしていますか? – KillianDS

+0

はい。私はglew_staticプロジェクトを使ってそれを再構築しました。 – Qix

答えて

1

問題は呼び出し規約でした。私は私が持っていたGLFWコードで__cdeclする_glfwTerminate_atexit(void)を変更し、その後建て、__stdcall代わりの__cdeclに呼び出し規約の設定を変更しました。

修正済み!

1

うん。私はglew_staticプロジェクトを使ってそれを再構築しました。あなたは、あなたがそれにを結ぶだという意味ではありません、そのプロジェクトを構築しましたからといって

C:\ユーザーはジェイク\ドキュメント\ \ Vexal2 \ vexal \ vc9_x86 \ libに\デバッグ\ GLEW.lib

静的GLEWライブラリされていないこと。これはGLEWのDLLバージョンのインポートライブラリです。静的なGLEWライブラリはGLEW32s.libと呼ばれます。それにリンクしてください。

+0

申し訳ありませんが、それらの図書館を作った。ソリューションdirだけでなく、プロジェクトdirとデバッグdirにもDLLを追加しました。まだ同じエラーが発生しています。 – Qix

+0

DLLにリンクしていないはずです。 *静的* GLEWを構築していますが、DLLのバージョンではありません。 GLEWをDLLとして使いたい場合は、 'GLEW_STATIC'定義を取り出さなければなりません。 –

+0

これは私がやっていることです_ _私はプロジェクトでGLEW_STATICを定義し、GLEWを生成しました。lib(これは私が作ったものです)。 – Qix