错误 LNK2019: 在函数 ___tmainCRTStartup 中被引用的未解析的外部符号 _main

4

我正在使用C++编写SDL程序,但是一直出现错误:

    error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup

我该如何解决这个问题?这是我的源代码:
#include <SDL.h>
int main(int argc, char *argv[]){
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Window* Window = NULL;
    Window = SDL_CreateWindow("Render Window",0,0,1000,1000, SDL_WINDOW_SHOWN || SDL_WINDOW_FULLSCREEN);
    return 0;
}

我的链接器和编译器似乎没问题,我已经将控制台包含在子系统中。但是只有当我添加以下内容时才会出现错误:
#include <SDL.h>

还有一个有趣的问题:为什么SDL定义了main宏?(链接:https://dev59.com/52ct5IYBdhLWcg3wmOZN) - MicroVirus
这个问题已经在这里得到了解答。 - MicroVirus
我不确定你为什么决定与自己进行编辑战,但我将锁定此帖子。 - Taryn
1个回答

10
我认为 "SDL.h" 内部包含 "SDL_main.h",其中包含一个奇怪的 #define
#define main SDL_main

这很可能会破坏你自己的main函数。

尝试在 include "SDL.h" 后添加 #undef main,例如:

#include <SDL.h>
#undef main

既然你已经将SubSystem更改为Console,那应该就是你需要的全部。

有关更多信息,请参见此问题


2
此外,重要的是将字符集配置为“使用多字节字符集”。 - karlphillip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接