0

複数の検索とチュートリアルを使用して、これをコンパイルするために過去 24 時間の作業時間を費やしました (動的にリンクする必要があると言う人もいれば、静的にリンクする必要があると言う人もいます)、これを機能させることはできません。私はコンパイルとリンクに比較的慣れていないので、助けていただければ幸いです。

これが私のコードです(私のコメントからわかるように、昨夜はこれをコーディングするのにとても疲れていました):

#define NO_SDL_GLEXT
#define GLEW_STATIC
#include "GL/glew.h"
#include "SDL/SDL.h"
#include "SDL/SDL_opengl.h"

int main (int argc, char* args[]){
    //Loads the SDL video module
    SDL_Init(SDL_INIT_VIDEO);

    //Creates the SDL Surface for OpenGL to draw to
    SDL_Surface* surface = SDL_SetVideoMode(800,600,32, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_OPENGL );

    //Sets the caption...
    SDL_WM_SetCaption("OpenGL",0);

    glewExperimental = GL_TRUE;
    glewInit();

    //Main event loop, this is the BREAD AND BUTTER LADIES AND GENTLEMEN
    SDL_Event windowEvent;
    while (true){
        if (SDL_PollEvent(&windowEvent)){
            //If you close the appplication, causes it to actually stop running :D
            if (windowEvent.type == SDL_QUIT) break;

            //Close it with the ESC key! :D:D:D:D:D:D:D:D:D:
            if (windowEvent.type == SDL_KEYUP && windowEvent.key.keysym.sym == SDLK_ESCAPE) break;
        }
            //Literally the one extra line of code needed to do double buffering
        SDL_GL_SwapBuffers();
    }

    //I wish I knew what this ended...LOPE JK
    SDL_Quit();

    return 0;
}

そして、私が持っている検索ディレクトリには:

コンパイラ:

E:\Programs\CodeBlocks\glew-1.10.0\include
E:\Programs\CodeBlocks\SDL-1.2.15\include

リンカ:

E:\Programs\CodeBlocks\glew-1.10.0\lib\Release\x64
E:\Programs\CodeBlocks\SDL-1.2.15\lib

そして最後に、私が持っているリンカー設定で

リンク ライブラリ:

E:\Programs\CodeBlocks\glew-1.10.0\lib\Release\x64\glew32s.lib

その他のリンカー オプション:

-lmingw32 -lglew32s -DGLEW_STATIC -lSDLmain -lSDL

現在発生しているエラーは次のとおりです。

In function 'SDL_main':
undefined reference to `glewExperimental'
undefined reference to `glewInit@0'

すべての助けを前もってありがとう!

4

1 に答える 1

2

リンカー エラーが発生しています。Mingw コンパイラを使用してアプリケーションをコンパイルしているようです。しかし、あなたが使用している glew ライブラリも Mingw で/用に構築されていますか? glew を自分でビルドせずにビルド済みのバイナリをダウンロードした場合、それはおそらく Visual Studio を使用してビルドされたものです。このように異なるコンパイラのライブラリを混在させるのは簡単ではないことに注意してください。

これを見てください: http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

PS: プロプライエタリ ソフトウェアに対する哲学的な理由でそうすることが妨げられていない限り、Visual Studio コンパイラの使用を検討する必要があります。Visual Studio コンパイラのエクスプレス エディションは無料です (ビールのように)。QtCreator のような非常に優れた IDE で Visual Studio コンパイラを使用できます。

于 2013-08-13T08:27:24.847 に答える