0

このコードを使用してSDLをテストしようとしています:

#include <SDL.h>

int main(int argc, char** argv){

    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Surface * screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
    bool IsRuning = true;
    Uint32 Start;
    SDL_Event Event;

    while (IsRuning)
    {
        Start = SDL_GetTicks();
        while (SDL_PollEvent(&Event))
        {
            switch (Event.type)
            {
            case SDL_QUIT:
                IsRuning = false;
                break;
            default:
                break;
            }
        }
        if(1000/30 > (SDL_GetTicks() - Start))
            SDL_Delay(1000/30 > (SDL_GetTicks() - Start));
    }

    SDL_Quit();
    return 0;
}

このライブラリをリンクしています:

SDLmain.lib
SDL.lib
OpenGL32.lib
glu32.lib

それをデバッグしようとすると、それらのエラーが表示されます:-

Warning 1   warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library    c:\Users\administrator\documents\visual studio 2010\Projects\TestSDL\TestSDL\MSVCRTD.lib(cinitexe.obj)

Error   2   error LNK2019: unresolved external symbol ___report_rangecheckfailure referenced in function _redirect_output   c:\Users\administrator\documents\visual studio 2010\Projects\TestSDL\TestSDL\SDLmain.lib(SDL_win32_main.obj)

Error   3   error LNK1120: 1 unresolved externals   c:\users\administrator\documents\visual studio 2010\Projects\TestSDL\Debug\TestSDL.exe  1

ここに何が足りないの?!!

4

2 に答える 2

1

おそらく、MicroSoft Visual C RunTime ライブラリであるの 1 つSDLmain.libまたはSDL.libに対するリンクです。msvcrt.libただし、デバッグ ビルドをコンパイルしていて、デバッグ ビルドはランタイム ライブラリのデバッグ バリアントに依存しています。これら 2 つのランタイム ライブラリは競合しています。

解決策は、SDL ライブラリの特定のデバッグ ビルドを使用することです。

于 2012-11-06T23:24:40.013 に答える
0

同じ問題がありました。次の行を変更する必要があります。

int main(int argc, char** argv)

int main(int argc, char* argv)
于 2014-04-04T08:10:44.907 に答える