2015-12-11 38 views
0

所以这里是我遇到的问题。突然间,实施SDL只是在2013年不再工作。更具体地说,任何时候都包括SDL标准头文件,我会得到链接器错误。我试图建立我的项目用下面的代码:一些SDL链接问题

#include <iostream> 
#include <SDL.h> 

SDL_Window *window; 
SDL_GLContext context; 

int main(int argc, char *argv[]){ 
    std::cout << "hello world" << std::endl; 
    if (SDL_Init(SDL_INIT_EVERYTHING)){ 
     SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); 
     window = SDL_CreateWindow("test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_OPENGL&SDL_WINDOW_SHOWN); 
     context = SDL_GL_CreateContext(window); 
    } 
    SDL_Delay(20000); 
    SDL_GL_DeleteContext(context); 
    SDL_DestroyWindow(window); 
    system("pause"); 
    return 0; 
} 

我收到以下错误:

  1. 错误1个错误LNK2019:解析外部符号_SDL_CreateWindow在功能_SDL_mainÇ引用:\用户\纳斯\ Documents \ Visual Studio 2013 \ Projects \ Open GL \ Open GL \ main.obj

  2. 错误2错误LNK2019:无法解析的外部符号_SDL_DestroyWindow在函数_SDL_main中引用C:\ Users \ Nas \ Documents \ Visual Studio 2013 \ Projects \打开GL \ Open GL \ main.o BJ

  3. 错误3错误LNK2019:解析外部符号_SDL_GL_SetAttribute在功能_SDL_mainÇ引用:\用户\纳斯\文件\的Visual Studio 2013 \项目\打开GL \打开GL \ main.obj

  4. 错误4错误LNK2019:解析外部符号函数_SDL_mainç_SDL_GL_CreateContext引用:\用户\纳斯\文件\的Visual Studio 2013 \项目\打开GL \打开GL \ main.obj

  5. 错误5错误LNK2019:解析的外部符号_SDL_GL_DeleteContext引用in _SDL_main C:\ Users \ Nas \ Documents \ Visual Studio 2013 \ Projects \ Open GL \ Open GL \ main.obj

  6. 错误6错误LNK2019:解析外部符号_SDL_Delay在功能_SDL_mainÇ引用:\用户\纳斯\文件\的Visual Studio 2013 \项目\打开GL \打开GL \ main.obj

  7. 错误7错误LNK2019:解析的外部符号_SDL_Init在功能_SDL_mainç引用:\用户\纳斯\文件\的Visual Studio 2013 \项目\打开GL \打开GL \ main.obj

  8. 错误8错误LNK2019:解析外部符号_main中引用函数___ tmainCRTStartup C:\ Users \ Nas \ Documents \ Visual Studio 2013 \ Projects \ Open GL \ Open GL \ MSVCRTD.lib(crtexe.obj)

  9. 错误9错误LNK1120:8周解析的外部C:\用户\纳斯\文件\的Visual Studio 2013 \项目\打开GL \调试\打开GL.exe

任何帮助理解:)

这里是我已经尝试过的事情的清单:

  1. 取消定义主〜>和#undef主要
  2. 改变我的子系统在Windows和控制台(既不工作)
  3. 反复清理和重建我的项目。
+0

你在哪里指定静态SDL库与项目挂钩? – benardier

回答

1

你链接了SDL.dll吗?

Here解释了你是如何做到的。

干杯,
lindebear

+0

好吧,基本上当你使用'LoadLibrary'时,你正在链接...这就是DLL代表DLL - >动态链接库。 :D – lindebear

+0

为了记录我知道DLL代表什么,我知道静态链接库和动态链接库之间的区别。然而,由于某种原因,我仍然愚蠢到忘记链接DLL。感谢帮助我这个愚蠢的错误,真的很感激它:)。 –

+0

那么在这种情况下,我很抱歉再次告诉你!哈哈:D – lindebear