2

我尝试在 C++ 中使用事件管理,我在 VS 中加入了 SDL 库,在我的示例中,

这是我的代码:

#include "SDL/SDL.h"

int main(int argc, char *argv[])
{
    SDL_Surface *ecran = NULL;
    SDL_Event event; /* La variable contenant l'événement */
    int continuer = 1; /* Notre booléen pour la boucle */

    SDL_Init(SDL_INIT_VIDEO);

    ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
    SDL_WM_SetCaption("Gestion des événements en SDL", NULL);

    while (continuer) /* TANT QUE la variable ne vaut pas 0 */
    {
        SDL_WaitEvent(&event); /* On attend un événement qu'on récupère dans event */
        switch(event.type) /* On teste le type d'événement */
        {
            case SDL_QUIT: /* Si c'est un événement QUITTER */
                continuer = 0; /* On met le booléen à 0, donc la boucle va s'arrêter */
                break;
        }
    }

    SDL_Quit();

    return EXIT_SUCCESS;
}

代码没有错误,但编译后出现错误:

LINK: fatal error LNK1561: entry point must be defined
4

2 回答 2

0

不确定这是否与您遇到的问题相同,但我记得一两天前看过这个!:

引用:

您的项目设置有问题。你真的创建了一个控制台应用程序吗?我认为您创建了一个 Win32 项目而不是控制台。这样做:右键单击项目名称 -> 属性 -> 展开链接器选项卡 -> 系统 -> 子系统:确保它是控制台 (/SUBSYSTEM:CONSOLE)。否则,重新创建项目,但在创建项目时,请确保选择 Win32 控制台应用程序。

关联

看起来你在这里有同样的问题......

于 2013-09-03T10:36:01.560 回答
0

如果我没记错的话,SDL 中有一些东西包装了你的main()函数:在 SDL-header 中,有一行

#define main some_other_name

然后,在图书馆的某个地方,有一个main()实现,它调用some_other_name().

如果我正确阅读了症状,则说明您没有静态链接 sdl 库,因此链接器看不到main()SDL 中的定义,只能看到some_other_name()您定义的函数。

于 2013-09-03T11:01:11.710 回答