SDL2:LNK1561:必须定义入口点

Dmi*_*try 15 c c++ sdl visual-c++ sdl-2

我想编译这段代码:

#include <SDL.h>

int main(int argc, char* argv[]) {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但它无法联系起来: Error 1 error LNK1561: entry point must be defined

这个库里有一些奇怪的代码:http://hg.libsdl.org/SDL/file/75726efbf679/include/SDL_main.h

#define main    SDL_main
Run Code Online (Sandbox Code Playgroud)

我也加入SDL2.lib;SDL2main.lib了Project Settings => Linker => Input.

我该怎么做才能运行这个项目?
VS 2012 SP3,空C++项目.

4pi*_*ie0 41

根据Dream.In.Code 上的这个帖子:

右键单击项目名称 - >属性 - >展开链接器选项卡 - >系统 - >子系统:确保它是 Console (/SUBSYSTEM:CONSOLE)

或者,如果要隐藏控制台窗口或正在调试多线程应用程序,则应将SubSystem设置为Window (/SUBSYSTEM:WINDOW).


小智 5

我发现设置/ SUBSYSTEM:CONSOLE只是解决方案的一半。第二部分是添加SDL_MAIN_HANDLED到您的其他定义中。我用来解决此问题的线索可以在SDL_main.h中找到。设置SDL_MAIN_HANDLED告诉SDL头文件您已经提供了一个main函数,并且不希望它重新定义其自己的入口点。