Приложения FLTK в Cygwin: GUI не отображается? - PullRequest
0 голосов
/ 31 марта 2012
#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".Код компилируется без инцидентов, но когда приложение запущено, я получаю только окно консоли и никакой графический интерфейс.

Я также пытался использовать жидкость из терминала (через «жидкость main.cpp»);Я даже не уверен, что использую это правильно, поскольку, как я понимаю, Fluid - это графический редактор.В любом случае, результат «Не удается открыть дисплей:».Я нашел ту же ошибку, но для другой ситуации здесь .Кто-то в этой теме предложил сделать "экспорт DISPLAY =: 0.0", что я попробовал.Теперь при использовании жидкости ошибка просто меняется на «Не удается открыть дисплей:: 0.0».

Стоит отметить, что я также пытался использовать Qt4 в качестве фреймворка (используя qmake / make для компиляции),но у меня точно такая же проблема.Консоль загружается без графического интерфейса, несмотря на использование кода, который, по словам различных источников, должен работать.

edit Я нашел этот вопрос.Я использовал DependencyWalker, чтобы найти .dll, используемые моим .exe, и поместил копии этих .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 Ответ

1 голос
/ 12 апреля 2012

Если fltk-config --cxxflags и fltk-config --ldflags не выводят -mno-cygwin, тогда ваш FLTK был скомпилирован для работы с системой X Window Cygwin - чего вы, вероятно, хотите избежать. Добавьте -mno-cygwin в ваш Makefile, и ваше приложение FLTK должно работать.

Мне всегда больше нравились MinGW + MSYS.

...