c++ - SDL 的 LNK 2019 错误

标签 c++ visual-studio-2010 sdl

我最近在一台新计算机上安装了 SDL 和 VS 2010,我的测试应用程序出现了问题。这是代码:

#include <SDL.h>
#include <SDL_opengl.h>
#undef main

int INIT_SDL_OPENGL()
{
if (SDL_Init(SDL_INIT_EVERYTHING) != 0)
{
    return 1;
}

SDL_SetVideoMode(640, 360, 32, SDL_OPENGL);

SDL_WM_SetCaption("Skeleton Example", NULL);

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glDisable(GL_DEPTH_TEST);

return 0;
}

void EndQuitly()
{
SDL_Quit();
exit(0);
 }

int main(int argc, char **argv)
{
INIT_SDL_OPENGL();

glBegin(GL_LINES);
   glVertex2f(360, 180);
   glVertex2f(640, 360);
glEnd();

EndQuitly();

return 0;
}   

错误是:

    error LNK1120: 4 unresolved externals   C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\Debug\SkeletonOpenGLExample.exe    1   SkeletonOpenGLExample
error LNK2019: unresolved external symbol _SDL_Init referenced in function "int __cdecl INIT_SDL_OPENGL(void)" (?INIT_SDL_OPENGL@@YAHXZ)    C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL.obj    SkeletonOpenGLExample
      error LNK2019: unresolved external symbol _SDL_Quit referenced in function "void __cdecl EndQuitly(void)" (?EndQuitly@@YAXXZ) C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL.obj    SkeletonOpenGLExample
    error LNK2019: unresolved external symbol _SDL_SetVideoMode referenced in  function "int __cdecl INIT_SDL_OPENGL(void)" (?INIT_SDL_OPENGL@@YAHXZ)    C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL.obj     SkeletonOpenGLExample
    error LNK2019: unresolved external symbol _SDL_WM_SetCaption referenced in   function     "int __cdecl INIT_SDL_OPENGL(void)" (?INIT_SDL_OPENGL@@YAHXZ)    C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL.obj                 SkeletonOpenGLExample

我查阅了几个教程并遵循了所有链接说明,但如果它们看起来有效,则没有一个。

提前致谢(抱歉,我不知道如何正确格式化错误

最佳答案

确保您链接到 .lib 文件并确保 SDL.dll 位于您的 system32 或 sysWOW64(对于 x64 pc)文件夹或您运行程序的目录中。

如果您不确定它们是否链接,您可以在运行时使用以下链接。还要确保您的项目设置为控制台。

#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL.lib")

你也在使用 opengl 所以也使用 #pragma comment(lib, "opengl32.lib")

可能 related .

关于c++ - SDL 的 LNK 2019 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413361/

相关文章:

C++ 逗号分隔的 Txt 文件

c++ - 客观内存比较

visual-studio-2010 - 在 Visual Studio 2010 上调试时 IIS 超时

javascript - Visual Studio - javascript 自定义对象的智能感知

android - 找不到-lgnuSTL_static : Compiling Android SDL port with NDK r7

c++ - Call by pointer 变成 call by reference to pointer

C++在shell中使用计时器执行多个命令

javascript - 是否可以连接到节点。带有 C++ 客户端的 js websocket 服务器

c++ - 通过 Visual Studio 运行 GCC

c++ - 将 SDL_Surface 像素复制到 STL 容器中