【问题标题】:Debug error "no source available for main()" with SDL project使用 SDL 项目调试错误“没有可用于 main() 的源”
【发布时间】:2016-07-23 03:49:59
【问题描述】:

我在使用 SDL 1.2.15 调试 C++ 项目时遇到了麻烦,但我的程序运行正常,没有任何问题。实际上启动调试,出现错误“在 [hexadecimal address] 处没有可用于 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 在 Windows 10(64 位)上开发 Eclipse Mars.2。
也许问题与 MinGW 中调试库的不正确链接有关?

【问题讨论】:

    标签: c++ eclipse gdb mingw sdl


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多