SDL未解析的外部符号

时间:2016-05-28 19:25:45

标签: c++ sdl

我一直收到这些错误:

error LNK2005: _main already defined in main.obj
error LNK2019: unresolved external symbol _SDL_main referenced in function _main_utf8
error LNK1120: 1 unresolved externals

构建此

#include <stdio.h>
#include <SDL.h>

int main(int argc, const char* argv[]){
    printf("Hi\n");
    return 0;
}

我在Visual Studio 2013中设置了目录和链接器,但我无法弄清楚出了什么问题。我正在使用32位SDL运行时库。我也是C ++的新手。

1 个答案:

答案 0 :(得分:2)

在主要功能之前,定义

#define SDL_MAIN_HANDLED

这会阻止SDL&#34;服务&#34;为您解析命令行(仅在Windows上)。虽然这是一个修复,但这对跨平台程序来说并不好。另一个解决方法是更改​​main,使其看起来像这样:

int main(int argc, char* argv[])

你必须这样做是因为SDL_Main.h中定义的主宏会强制你拥有它,否则它会给你带来的错误。