2012-03-31 8 views
0
#include <FL/Fl.H> 
#include <FL/Fl_Window.H> 

int main() { 
    Fl_Window win(400, 400); 
    win.show(); 
    return Fl::run(); 
} 

"fltk-config --compile main.cpp"로 컴파일 중입니다. 코드는 문제없이 컴파일되지만 응용 프로그램이 실행될 때 콘솔 창과 GUI 만 표시됩니다.Cygwin의 FLTK 응용 프로그램 : GUI가 표시되지 않습니까?

나는 또한 "fluid main.cpp"를 통해 터미널에서 유체를 사용해 보았습니다. 내가 이해 하기론 유체가 그래픽 편집기이기 때문에 이것을 올바르게 사용하고 있는지 확신 할 수 없다. 어떤 경우이든, 결과는 "디스플레이를 열 수 없음 :"입니다. 나는 같은 오류를 발견했지만 다른 상황을 위해서 here. 그 스레드의 누군가가 "export DISPLAY = : 0.0"을 수행 할 것을 제안했습니다. 이제 유체를 사용할 때 오류는 단순히 "Can not open display : : 0.0"으로 변경되었습니다.

Qt4를 프레임 워크 (qmake/make를 사용하여 컴파일)로 사용해 보았지만 똑같은 문제점이 있습니다. 다양한 소스가 작동한다고 말하는 코드를 사용함에도 불구하고 콘솔로드, 어떤 종류의 GUI도 없습니다.

편집 찾았습니다. this 질문이 있습니다. DependencyWalker를 사용하여 .exe가 사용하는 .dll을 찾고 해당 .dll의 복사본을 내 프로젝트 폴더에 직접 배치했습니다. 이것은 내 문제를 해결하거나 어떤 식 으로든 변경하지 않았습니다. 참고로, 사용 된 I .dll을이었다 : cygfontconfig -1-, cyggcc_s -1-, cygstdC++ - 6, cygwin1, cygX11-6, cygXft -2-, KERNEL32.

Qt에 대해서도 동일한 솔루션을 시도했지만 성공하지 못했습니다. 그 경우,이 .dll을 cygwin1, cyggcc_s -1-이었다 cygstdC++ - 6, cygqtcore -4-, cygqtgui -4-, KERNEL32.

좋은 소식은 Qt Creater SDK를 사용하여 응용 프로그램을 성공적으로 빌드 할 수 있음을 발견했습니다. 따라서이 문제는 내 설명서 컴파일 어딘가에 만 있습니다. 어쨌든이 문제를 해결하고 싶습니다. 소규모 프로젝트에 SDK를 사용하는 것을 좋아하지 않으며 내 라이브러리 옵션을 공개하고 싶습니다.

답변

1

만약 fltk-config --cxxflagsfltk-config --ldflags은 다음 FLTK Cygwin에서의 X 윈도우 시스템에서 작동하도록 컴파일 된 -mno-cygwin 출력하지 않습니다 - 당신은 아마 피하고 싶은 무언가를. Makefile에 -mno-cygwin을 추가하면 FLTK 응용 프로그램이 작동합니다.

나는 항상 MinGW + MSYS를 더 좋아했습니다.