SDL 项目的调试错误"没有可用于 main() 的源代码"
Debug error "no source available for main()" with SDL project
我在使用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"更改的问题。
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 代码在main()中运行,但在函数中出现错误
- 用于访问容器<T>数据成员的正确 API
- 重载操作程序时出错>>用于类中的字符串 memebr
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- C++中的cin.ignore()函数不适用于整个流
- 没有用于初始化C++中的变量模板的匹配构造函数
- 用于C++中带有数组和指针的循环
- 为什么它不适用于Visual 2019的原因
- 使用在用于SFINAE的void_t中具有参数的方法
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 重载==不适用于二进制树
- "no main"用于C++中链接或执行的功能
- 没有可用于 Eclipse 中 c++ "main()"错误的源
- SDL 项目的调试错误"没有可用于 main() 的源代码"
- Qt如何设法将main()用于Windows中的非控制台应用程序
- C++习语,用于在任意翻译单元中的main之前执行任意代码
- 将 main 中的变量值更改为可用于其他函数 (c++)