【发布时间】: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 中调试库的不正确链接有关?
【问题讨论】: