C++ - SDL2 和 OpenGL - Visual Studio 错误 LNK2019:无法解析的外部符号

Dei*_*_Ex 2 c++ opengl sdl visual-studio sdl-2

我正在学习如何使用 SDL2,并且正在学习 LazyFoo 的教程。

我已经下载了第 50 课的源代码,它教了如何将 OpenGL 与 SDL2 一起使用(链接到教程)并尝试执行它,但是我遇到了很多错误,我不知道该怎么办!

这些是错误:

Error   11  error LNK1120: 9 unresolved externals   c:\users\felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\Debug\SDL2 Template1.exe SDL2 Template1
Error   2   error LNK2019: unresolved external symbol __imp__glBegin@4 referenced in function "void __cdecl render(void)" (?render@@YAXXZ)  c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   3   error LNK2019: unresolved external symbol __imp__glClear@4 referenced in function "void __cdecl render(void)" (?render@@YAXXZ)  c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   4   error LNK2019: unresolved external symbol __imp__glClearColor@16 referenced in function "bool __cdecl initGL(void)" (?initGL@@YA_NXZ)   c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   5   error LNK2019: unresolved external symbol __imp__glEnd@0 referenced in function "void __cdecl render(void)" (?render@@YAXXZ)    c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   6   error LNK2019: unresolved external symbol __imp__glGetError@0 referenced in function "bool __cdecl initGL(void)" (?initGL@@YA_NXZ)  c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   7   error LNK2019: unresolved external symbol __imp__glLoadIdentity@0 referenced in function "bool __cdecl initGL(void)" (?initGL@@YA_NXZ)  c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   8   error LNK2019: unresolved external symbol __imp__glMatrixMode@4 referenced in function "bool __cdecl initGL(void)" (?initGL@@YA_NXZ)    c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   9   error LNK2019: unresolved external symbol __imp__glVertex2f@8 referenced in function "void __cdecl render(void)" (?render@@YAXXZ)   c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Error   10  error LNK2019: unresolved external symbol _gluErrorString@4 referenced in function "bool __cdecl initGL(void)" (?initGL@@YA_NXZ)    c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\50_SDL_and_opengl_2.obj   SDL2 Template1
Warning 1   warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library    c:\Users\Felipe\Desktop\Arquivos\Drawing - Modeling - Coding\Visual Studio 2013\SDL2 Template1\SDL2 Template1\MSVCRTD.lib(cinitexe.obj) SDL2 Template1
Run Code Online (Sandbox Code Playgroud)

我从未使用过 OpenGL,所以我不知道发生了什么。

那是什么意思?我该如何解决这个问题?

Log*_*rat 5

看起来您缺少一个库文件,很可能是 OpenGL32.lib。如果您有该库,请将其添加到您的项目中。

检查此页面,在底部附近:http : //msdn.microsoft.com/en-us/library/windows/desktop/dd318361(v=vs.85).aspx

  • @πάνταῥεῖ 哦,我稍微搜索了一下,在我的 ProgramsFiles(x86) 中找到了一个名为“Windows Kits”的文件夹(奇怪的是,即使我使用的是 Windows 7,也有两个名为 8.0 和 8.1 的文件夹),在那里我找到了另一个文件夹名为“gl”,其中包含 lib 和 include 文件夹以及 OpenGL32.lib 文件。我以与添加 SDL2 相同的方式添加它们,现在我没有收到任何其他错误,除了错误 10(gluErrorString 事情)和警告。 (2认同)