无法调试CodeLite创建的Fltk项目

时间:2013-04-30 17:33:00

标签: fltk codelite

我正在使用CodeLite创建一个Fltk项目.Everthing似乎很好但是当我按F5进行调试时,它总是会遇到“程序接收信号SIGSEGV”提示。 这是调用堆栈:

  

0 0x00401c66 Fl_Widget :: Fl_Widget(int,int,int,int,char const *)
  1 0x0040a6b1 Fl_Group :: Fl_Group(int,int,int,int,char const *)
  2 0x004097bf Fl_Window :: Fl_Window(int,int,char const *)3   0x00401415 main

我确信代码没有问题,因为我使用CodeBlocks成功地完成了它;

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>
using namespace std;

//--------------------------------------------
void but_cb( Fl_Widget* o, void*  ) {
Fl_Button* b=(Fl_Button*)o;
b->label("Good job"); //redraw not necessary

b->resize(10,150,140,30); //redraw needed
b->redraw();
}

//--------------------------------------------  
int main() {
Fl_Window win( 300,200,"Testing" );
win.begin();
   Fl_Button but( 10, 150, 70, 30, "Click me" );
win.end();
but.callback( but_cb );
win.show();
return Fl::run();
}

构建日志,可能很有用:

  

C:\ windows \ system32 \ cmd.exe / c“mingw32-make.exe -j 4 -e -f   “CL_TESL_wsp.mk””   ----------构建项目:[HelloFltk - Debug] ----------“mingw32-make.exe [1]:输入目录G:/CPP/CL_TESL/HelloFltk' g++ -o ./Debug/HelloFltk @"HelloFltk.txt" -L. -LG:/MinGW-4.7.1/lib/ -LG:/FLTK/fltk- 1.3.2/lib/ -LG:/FLTK/fltk-1.3.2/ -LG:/MinGW-4.7.1/lib/ -lgdi32 -lfltk -lfltk_forms -lfltk_gl -lfltk_images -lfltk_z -lgdi32 -lole32 -luuid -luser32 -lcomctl32 mingw32-make.exe[1]: Leaving directory G:/ CPP / CL_TESL / HelloFltk'0错误,0警告

新情况!! 今天我将我的CodeBlocks更新到最新版本,它出现了同样的问题。我认为它与MinGW的版本相关...我使用新版本的MinGW重新制作FLTK,也不起作用...... 因此,我必须将CodeLite的MinGW路径更改为旧路径,并且它可以工作...为什么我不能使用最新版本?

1 个答案:

答案 0 :(得分:0)

我怀疑您尝试按照本教程进行操作:

http://www3.telus.net/public/robark/#labels

在该链接的底部,它解释了为什么您尝试的示例不好:

  

这个程序有一个很大的问题。单击按钮。然后尝试通过移动窗口或最小化/恢复来强制重绘。注意标签显示的垃圾! FLTK试图推断一个不再存在的指针。不好

我自己没有尝试过,同一个教程提供了一个修复:

  

如果我们改变回调函数中的行   邻 - &GT;标签(newcap);

     

     

邻 - &GT; copy_label(newcap);

祝你好运, 叶兰