我正在运行带有MinGW和SDL的Eclipse CDT 64位。我已经读过SDL“巧妙地”重新定义了主要方法,并且为了使用我自己的主要cpp,有时可以精确地添加#undef main。我已经完成了它,但是当我尝试运行我的应用程序时,我的主要是完全被忽略(为了实现这一点我设置了一些断点)。
我的主要方法是这样的:
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#undef main
using namespace std;
int main(int argc, char* argv[])
{
if (SDL_Init(SDL_INIT_EVERYTHING) == -1) {
printf("Error: %s\n", SDL_GetError());
return 1;
}
SDL_WM_SetCaption( "MarioKong", NULL );
我在项目属性上定义了MinGW C ++ Linker库,如下所示:mingw32,SDLMain,SDL,SDL_image。我遵循(lazyfoo)
中所述的SDL安装说明如何运行我的主文件?
答案 0 :(得分:1)
重新定义main的巧妙方法是在所有平台上具有相同的主要功能,并且您可以在任何地方使用它。所以没有#ifdef win32 WinMain else main等。你可以在所有平台上平等使用命令行参数。所以我的建议是坚持使用" int main(int argc,char * argv [])"并且不要使用#undef主命令