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

时间:2016-08-06 10:43:10

标签: c++ c sdl linker-errors main

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

只是没有一个明显的解决方法似乎在帮助我。我试过了:

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

  2. 尝试使用C链接,就像SDL_main.h中的注释所示:

    *  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. 尝试取消定义主体。

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

1 个答案:

答案 0 :(得分:2)

请在main.cpp文件的顶部尝试此操作:

#define SDL_MAIN_HANDLED

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

请注意,它必须在您加入SDL之前发生:

#define SDL_MAIN_HANDLED
#include "SDL2/SDL.h"