3

GLEW をプログラムに正しくリンクさせることができません。

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

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

静的ライブラリとして取得しようとしているので、DLL は必要ありません。

ビルド手順でアドバイスされているように、GLEW_STATIC も定義しています。

エラーメッセージ:

OGLInit.obj : エラー LNK2019: 関数 "bool __stdcall vexal::OGLStartup(void)" で参照されている未解決の外部シンボル _glewInit@0 (?OGLStartup@vexal@@YG_NXZ)

dumpbin を使用して、initGlew があることを確認しました。それはあります、そしてそれは外部です。

libが見つかったことも確認しました。

C:\Users\Jake\Documents\Vexal2\vexal\vc9_x86\lib\Debug\GLEW.lib の検索:

私はここでアイデアを使い果たしました。何か助けはありますか?

4

2 に答える 2

1

問題は呼び出し規約でした。呼び出し規約の設定を__stdcallではなくに__cdecl変更_glfwTerminate_atexit( void )し、持っていたGLFWコードで__cdeclに変更してから、ビルドしました。

修理済み!

于 2012-02-08T16:56:48.937 に答える
1

うん。glew_static プロジェクトを使用して再構築しました。

そのプロジェクトを作成したからといって、そのプロジェクトにリンクしているとは限りません。

C:\Users\Jake\Documents\Vexal2\vexal\vc9_x86\lib\Debug\GLEW.lib

それは静的 GLEW ライブラリではありません。これは、GLEW の DLL バージョンのインポート ライブラリです。静的 GLEW ライブラリは と呼ばれGLEW32s.libます。そこにリンクします。

于 2012-02-08T16:07:05.207 に答える