2013-04-30 5 views
0

CodeLite를 사용하여 Fltk 프로젝트를 만들었습니다. 문제가 없지만 F5 키를 눌러 디버그하면 항상 "프로그램 수신 신호 SIGSEGV"정보가 충돌합니다.CodeLite에서 만든 Fltk 프로젝트를 디버그 할 수 없습니다.

0 0x00401c66 Fl_Widget :: Fl_Widget (INT, INT, INT, INT, 숯 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 주요

내가 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 - 디버그] ---------- "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의 버전 relavent 생각 ... 내가 FLG를 MinGW의 새로운 버전을 사용하여 다시 만들거나, 작동하지 않습니다 ... 그래서 나는 CodeLite의 MinGW 경로가 이전 버전으로 돌아가고 작동합니다 ... 왜 내가 최신 버전을 사용할 수 없었습니까?

답변

0

나는이 튜토리얼에 따라하려 의심 :

이 프로그램이 있습니다 당신은 시도의 예 잘되지 않는 이유는 설명 링크의 하단에

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

을 큰 문제. 버튼을 클릭하십시오. 그런 다음 창을 이동하거나 최소화/복원하여 다시 그리기를 시도하십시오. 라벨에 표시되는 쓰레기를 확인하십시오! FLTK는 더 이상 존재하지 않는 포인터를 보려고합니다. NOT GOOD

나도 같은 튜토리얼에 의해, 그것을 자신을 시도하지 않은이 수정 프로그램을 제공합니다 :

우리가 O-> 라벨 (newcap)에서 콜백 함수의 라인을 변경하는 경우;

O-> copy_label (newcap)

하는 단계;

행운을 빌어 요, 에 란은

+0

는 지금은 fltk.org에서 코드를 복사,하지만 문제는 여전히 미해결 남아있다. "int main (int argc, char ** argv) { Fl_Window * window = new Fl_Window (340,180); Fl_Box * box = new Fl_Box (2040300100,"Hello, World!"); 박스 -> 박스 (FL_UP_BOX) 박스 -> labelfont (FL_BOLD + FL_ITALIC) 박스 -> labelsize (36) 박스 -> labeltype (FL_SHADOW_LABEL) 도우> 단부(); return Fl :: run(); } "Fl_Widget의 생성시 항상 충돌합니다. – user2002732