SDL 项目的调试错误"没有可用于 main() 的源代码"

Debug error "no source available for main()" with SDL project

本文关键字:main 用于 源代码 项目 调试 错误 SDL      更新时间:2023-10-16

我在使用SDL 1.2.15调试C++项目时遇到了问题,但我的程序运行正常,没有任何问题。事实上,在启动调试时,出现了错误"在[十六进制地址]没有可供main()使用的源",我在Eclipse中唯一能做的就是点击"查看反汇编",它向我显示了执行的所有汇编程序,事实上,错误中指定的地址不是main()的地址,而是前一个地址。

include "SDL/SDL.h"
int main(int argc, char* args[]) {
SDL_Surface* screen;
SDL_Surface* sur;
screen=SDL_SetVideoMode(1280,720,32,SDL_SWSURFACE);
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING);
sur=SDL_LoadBMP("immagine.bmp");
SDL_BlitSurface(sur,NULL,screen,NULL);
SDL_Flip(screen);
SDL_Delay(4000);
//Quit SDL
SDL_Quit();
return 0;
} 

这个程序非常简单,所以我不认为这个问题与代码的内容有关,它似乎甚至与gdb无关,因为它在C++项目中工作得很好,但这个问题只在使用SDL时出现。我试图将默认编译器标记从-g3更改为-g,但没有任何更改
我正在使用MinGW-gcc和gdb在Windows10(64位)上开发EclipseMars.2
也许这个问题与MinGW中调试库的不正确链接有关?

问题出在Debugger的入口点上,事实上SDL定义了自己的main(SDL_main),所以我解决了从"Debug Configuration"菜单、Debugger标签、字段"Stop on startup at"从"SDL_main"中的默认值"main"更改的问题。