2012-11-06 63 views
0

在嘗試使用此代碼來測試SDL:SDL錯誤LNK1120:1周無法解析的外部

#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 

什麼馬在這裏失蹤?!!

回答

1

可能是SDLmain.libSDL.lib的鏈接,它是針對msvcrt.lib的鏈接,它是MicroSoft Visual C RunTime庫。但是,您正在編譯調試版本,並且調試版本取決於運行時庫的調試版本。那兩個運行時庫,它們是衝突的。

解決方案是使用SDL庫的特定調試版本。

0

我有同樣的問題。您需要更改行:

int main(int argc, char** argv) 

int main(int argc, char* argv) 
相關問題