SDL errors Visual Studio 2013

SDL errors Visual Studio 2013

本文关键字:2013 Studio Visual errors SDL      更新时间:2023-10-16

我正在使用Visual Studio 2013和SDL 2.0.1,由于某种原因,我得到了一大堆与此类似的错误:

Error   2   error LNK2019: unresolved external symbol _SDL_DestroyWindow referenced in function "public: virtual __thiscall Display::~Display(void)" (??1Display@@UAE@XZ)   c:UsersTobydocumentsvisual studio 2013ProjectsOpenGLTutorialProjectOpenGLTutorialProjectDisplay.obj OpenGLTutorialProject

我采取的步骤将SDL链接到我的程序: - 创建一个称为include的文件夹,并将所有文件放入sdl/include我的项目include文件夹中。 - 为我的项目创建了一个LIB文件夹,然后将所有内容放入SDL/Lib中。 - 符合属性 -> Linker->常规 ->其他Library Directories ,并将其指向项目中的LIB文件夹。 - 符合属性 -> c/c ->常规 ->附加目录,并为项目中的文件夹设置路径。 - 符合属性 -> linker-> input->其他依赖项并输入以下内容:

glew32.lib
glew32s.lib
SDL2.lib
SDL2main.lib
SDL2test.lib
OpenGL32.lib

是的,我还提供了glew,它可以正常工作且链接。

当我输入此内容时:

#include<SDL2/SDL.h>

Visual Studio实际上为我完成了它,因此Visual Studio知道该项目中存在SDL。但是,在那之后,我尝试运行和编译,我遇到了一堆未解决的外部符号错误,然后是:

Error   12  error LNK1120: 11 unresolved externals  c:userstobydocumentsvisual studio 2013ProjectsOpenGLTutorialProjectDebugOpenGLTutorialProject.exe   OpenGLTutorialProject

我搜索了,似乎SDL曾经在Visual Studio 2013上遇到麻烦,但随后将这些虫子淘汰了。我还确保设置我的主要方法:

int main(int argc, char **argv)

因为我听说SDL在主要方法中的参数方面很挑剔。谁能告诉我我做错了什么?

我的猜测是您要么使用不正确的路径,要么在选择了所选平台的库的错误版本上链接?IE x86或x64?

如果为32位设置了编译器,则需要使用X86库,而不是X64。

此外,Additional Library Directories需要指向LIB文件所在的目录,在SDL2中,LIB目录分别为X86和X64的两个子目录。如果您复制了SDL Lib目录中的所有内容,则文件可能最终到达应该不在的地方。