0

我最近在一台新计算机上安装了 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;
}   

错误是:

    错误 LNK1120:4 个未解析的外部 C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\Debug\SkeletonOpenGLExample.exe 1 SkeletonOpenGLExample
错误 LNK2019:未解析的外部符号 _SDL_Init 在函数“int __cdecl INIT_SDL_OPENGL(void)”(?INIT_SDL_OPENGL@@YAHXZ) C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL 中引用。 obj SkeletonOpenGL示例
      错误 LNK2019:未解析的外部符号 _SDL_Quit 在函数“void __cdecl EndQuitly(void)”(?EndQuitly@@YAXXZ) C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL 中引用。 obj SkeletonOpenGL示例
    错误 LNK2019:未解析的外部符号 _SDL_SetVideoMode 在函数“int __cdecl INIT_SDL_OPENGL(void)”(?INIT_SDL_OPENGL@@YAHXZ) C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL 中引用。 obj SkeletonOpenGL示例
    错误 LNK2019:未解析的外部符号 _SDL_WM_SetCaption 在函数“int __cdecl INIT_SDL_OPENGL(void)”(?INIT_SDL_OPENGL@@YAHXZ) C:\Users\einat\Documents\Visual Studio 2010\Projects\SkeletonOpenGLExample.c\SkeletonOpenGLExample.c\testSDL 中引用。 obj SkeletonOpenGL示例

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

在此先感谢(抱歉,我不知道如何正确格式化错误

4

1 回答 1

2

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

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

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

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

可能相关

于 2013-05-07T15:21:19.593 回答