MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)"

在使用SDL库的时候会在编译时报出以下错误 
1>MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中被引用

主要原因是main函数没有找到 ,main函数没有找到的主要原因是SDL中把main从新定义一个新的意义SDL使用了 
#define main SDL_main 
所以我们写的main就没有真正的意义了 程序也就找不到入口了 
我们应该

#undef main 
  • 1

取消sdl对main的定义就可以


附上示例代码

#undef main //因为SDL重定义了main
int main()
{
if (SDL_Init(SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO))
{
cout << "Could not initialize SDL : " << SDL_GetError();
}


Uint32 init = SDL_WasInit(SDL_INIT_EVERYTHING);
if (init & SDL_INIT_VIDEO)
{
cout << "SDL video is inited" << endl;
}

........
    return 0;
}

你可能感兴趣的:(SDL)