0

我正在使用 MinGW 和 SDL 运行 Eclipse CDT 64 位。我已经读过 SDL '聪明地' 重新定义了 main 方法,并且有时添加 #undef main 以使用我自己的 main cpp 是精确的。我已经这样做了,但是当我尝试运行我的应用程序时,我的 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++ 链接器库,如下所示:mingw32、SDLMain、SDL、SDL_image。我按照 ( lazyfoo )中所述的 SDL 安装说明进行操作

如何运行我的主文件?

4

1 回答 1

1

重新定义 main 的巧妙方法是在所有平台上都有相同的 main 函数,并且可以在任何地方使用相同的函数。所以没有#ifdef win32 WinMain else main 等。您可以在所有平台上平等地使用命令行参数。所以我的建议是坚持使用“int main(int argc, char* argv[])”,不要使用#undef main 命令

于 2014-07-14T11:36:09.467 回答