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

Posted

技术标签:

【中文标题】Cygwin 中的 FLTK 应用程序:GUI 不显示?【英文标题】:FLTK applications in Cygwin: GUI doesn't show? 【发布时间】:2012-03-31 16:10:59 【问题描述】:
#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-1cyggcc_s-1cygstdc++-6cygwin1cygX11-6cygXft-2kernel32

我也为 Qt 尝试了相同的解决方案,但同样没有成功。在这种情况下,.dll 是 cygwin1cyggcc_s-1cygstdc++-6cygqtcore-4cygqtgui-4kernel32.

对于一些好消息,我发现使用 Qt Creater SDK 可以成功构建应用程序,所以问题出在我手动编译的某个地方。无论如何,我仍然想解决这个问题。我不喜欢将 SDK 用于小型项目,我希望保持我的库选项处于打开状态。

【问题讨论】:

【参考方案1】:

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

我一直更喜欢 MinGW+MSYS。

【讨论】:

以上是关于Cygwin 中的 FLTK 应用程序:GUI 不显示?的主要内容,如果未能解决你的问题,请参考以下文章

Cygwin-1.7.17环境下编译FLTK-1.3.2

试图在 C++ 中的 Fltk GUI 中单击鼠标右键

任何fltk gui集成编译器?

C++:帮助安装 FLTK

开源跨平台GUI库Fltk在Deepin Linux下的使用

fltk-1.3.5 小部件上的视觉工件