SDL 项目调试错误 "no source available for main()"
Debug error "no source available for main()" with SDL project
我在使用 SDL 1.2.15 调试 C++ 项目时遇到了麻烦,但我的程序运行正常,没有任何问题。事实上启动调试,错误 "No source avalailable for main() at [hexadecimal address] appears and the only thing I can do in Eclipse is click on "View Disassembly",它向我展示了所有执行的汇编程序指令,很明显,错误中指定的地址实际上不是 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 在 Windows 10(64 位)上开发 Eclipse Mars.2。
也许问题与 MinGW 中调试库的链接不正确有关?
问题出在Debugger的入口点,实际上SDL定义了自己的main(SDL_main),所以我解决了从"Debug Configuration"菜单,Debugger标签,字段"Stop on startup at" 来自 "SDL_main" 中的默认值 "main"。
我在使用 SDL 1.2.15 调试 C++ 项目时遇到了麻烦,但我的程序运行正常,没有任何问题。事实上启动调试,错误 "No source avalailable for main() at [hexadecimal address] appears and the only thing I can do in Eclipse is click on "View Disassembly",它向我展示了所有执行的汇编程序指令,很明显,错误中指定的地址实际上不是 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 在 Windows 10(64 位)上开发 Eclipse Mars.2。
也许问题与 MinGW 中调试库的链接不正确有关?
问题出在Debugger的入口点,实际上SDL定义了自己的main(SDL_main),所以我解决了从"Debug Configuration"菜单,Debugger标签,字段"Stop on startup at" 来自 "SDL_main" 中的默认值 "main"。