使用 SDL 库时出现链接器错误:_main 已在 main.obj 中定义

Linker Error when using the SDL Library: _main already defined in main.obj

所以我已经知道为什么会出现这个错误,在 SDL_main.h 文件中创建了一个 'main' 宏,这将导致您的实际主函数出现问题。

只是 none 明显的解决方法似乎对我有帮助。我试过:

  1. 用 (int argc, char* argv[]) 定义我的主函数。

  2. 像SDL_main.h中的评论建议的那样用C链接试了一下:

    *  The application's main() function must be called with C linkage,
    *  and should be declared like this:
    *  \code
    *  #ifdef __cplusplus
    *  extern "C"
    *  #endif
    *  int main(int argc, char *argv[])
    *  {
    *  }
    *  \endcode
    
  3. 尝试取消定义 main。

为了让主要功能再次正常工作,我可以尝试任何其他技巧吗?

main.cpp 文件的顶部也试试这个:

#define SDL_MAIN_HANDLED

这应该会导致 SDL 跳过所有 main 废话。

请注意,它需要在您包含 SDL:

之前发生
#define SDL_MAIN_HANDLED
#include "SDL2/SDL.h"