c++ - SDL 错误 LNK1120 : 1 unresolved externals

标签 c++ opengl sdl

我正在尝试使用此代码测试 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

这里缺少什么?!!

最佳答案

可能是 SDLmain.libSDL.lib 之一链接到 msvcrt.lib,它是 MicroSoft Visual C RunTime 库。但是,您正在编译调试版本,而调试版本取决于运行时库的调试变体。这两个运行时库,它们是冲突的。

解决方案是使用 SDL 库的特定调试版本。

关于c++ - SDL 错误 LNK1120 : 1 unresolved externals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260938/

相关文章:

c++ - 在 C/C++ 中将十六进制数组作为字符串写入文件

c++ - 使用 Visual Studio 2012 编译 GLFW

c++ - sf::Sprites 拥有自己的位置和旋转背后的原因是什么?它混淆了我的组件/实体/系统

c++ - 您如何找到整数类型在 C++ 中可以表示的值的范围?

c++ - std::mutex 作为多线程的成员变量线程安全吗?

opengl - OpenGL 的自定义混合方程(着色器)

java - 使用Buffer的JOGL显示

c++ - SDL 1.3 : How to render video with out displaying it?

c++ - SDL 交叉 header 渲染

c++ - cin 是否在输入流中采用空字符?