Cygwin中的FLTK应用程序:GUI没有显示?

时间:2012-03-31 16:10:59

标签: c++ qt4 fltk

#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。

我也尝试过使用来自终端的液体(通过“fluid main.cpp”);我甚至不确定我是否正确使用这个,因为据我所知,流体是一个图形编辑器。无论如何,结果是“无法打开显示:”。我发现了相同的错误,但针对不同的情况here。那个帖子中有人建议做“export DISPLAY =:0.0”,我试过了。现在使用流体时,错误只是改为“无法打开显示:: 0.0”。

值得注意的是,我也尝试使用Qt4作为框架(使用qmake / make进行编译),但我有完全相同的问题。控制台加载,没有任何类型的GUI,尽管使用各种来源认为应该有效的代码。

修改 我发现了this个问题。我使用DependencyWalker来查找我的.exe使用的.dll,并将这些.dll的副本直接放到我的项目文件夹中。这并没有解决我的问题,或以任何方式改变它。作为参考,我使用的.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 个答案:

答案 0 :(得分:1)

如果fltk-config --cxxflagsfltk-config --ldflags没有输出-mno-cygwin,那么您的FLTK就会被编译为与Cygwin的X Window系统一起使用 - 您可能希望避免这种情况。将-mno-cygwin添加到Makefile中,您的FLTK应用程序应该可以正常工作。

我总是更喜欢MinGW + MSYS。