Кроссплатформенный UI в 2018?
Модератор: Модераторы разделов
Кроссплатформенный UI в 2018?
На чём написать не большое десктоп приложение, чтобы UI был и работало в linux и windows?
На чём Вы лично такие приложения пишите?
зы
сам пробовал fpc, java, Qt, js.
На чём Вы лично такие приложения пишите?
зы
сам пробовал fpc, java, Qt, js.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Кроссплатформенный UI в 2018?
Смотря, какой UI.
Я например, поддерживаю старый проектик (игрушка), там используется SDL.
При этом оно работает в Linux (как в консоли, так и в иксах) и в Windows. С поддержкой мыши, разумеется.
Так что UI бывают всякие.
Я например, поддерживаю старый проектик (игрушка), там используется SDL.
При этом оно работает в Linux (как в консоли, так и в иксах) и в Windows. С поддержкой мыши, разумеется.
Так что UI бывают всякие.
Спасибо сказали:
- serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
- Контактная информация:
Re: Кроссплатформенный UI в 2018?
Вот на прошлой неделе писал их на GTK+, сегодня, за обедом, напишу парочку на Electron, а с завтрашнего дня всю неделю буду писать на QT. Ну разве только в субботу - на кошерном UWP. По субботам GTK+ низя.
Спасибо сказали:
Re: Кроссплатформенный UI в 2018?
А собирать UI под windows или под linux для винды?
Спасибо сказали:
Re: Кроссплатформенный UI в 2018?
Если собирать из под linux для винды то:
Для чего то посложнее QT, так как много чего включает в себя но и собрать библиотеку сложнее.
Для чего то простого хватит и wxwigets, для Linux это wxGTK, для windows это wxMSW.
Для Linux wxWidgets собрать довольно просто, для этого нужен только установленный компилятор Mingw. Для Gentoo компилятор собирается довольно просто тыц. Только для 32 битной версии компилятор нужно выбрать немного постарее, чем тот который идет по умолчанию, так как поломали что то для запуска динамически скомпилированных программ, например добавив для crossdev опцию --gcc 4.9.4.
Собирается довольно просто динамическая версия wxMSW:
Для сборки статической версии нужно добавить параметр --disable-shared.
Данный пример тыц собирается без переделки, незначительно отличается только Makefile:
Для linux:
Для Windows динамическая версия:
Конечно для сборки под винду останется только указать путь для файла wx-config, что бы выполнялся тот который соответствует сборке для винды:
export PATH=$HOME/program/mingw-sr/wxMSW/bin:$PATH
Для статической сборки нужа будет статическая сборка wxwidgets и добавлен для gcc ключ -static.
Есть конечно много чего, что будет собираться только для windows или только для Linux. Например скринсейвер написанный для винды, но собрать его под linux не составит труда.
Для чего то посложнее QT, так как много чего включает в себя но и собрать библиотеку сложнее.
Для чего то простого хватит и wxwigets, для Linux это wxGTK, для windows это wxMSW.
Для Linux wxWidgets собрать довольно просто, для этого нужен только установленный компилятор Mingw. Для Gentoo компилятор собирается довольно просто тыц. Только для 32 битной версии компилятор нужно выбрать немного постарее, чем тот который идет по умолчанию, так как поломали что то для запуска динамически скомпилированных программ, например добавив для crossdev опцию --gcc 4.9.4.
Собирается довольно просто динамическая версия wxMSW:
Spoiler
CXX="i686-mingw32-c++" CC="i686-mingw32-gcc" ../configure --build=x86-winnt-mingw32 --host="i686-mingw32" --prefix=$HOME/program/mingw-sr/wxMSW
Данный пример тыц собирается без переделки, незначительно отличается только Makefile:
Для linux:
Spoiler
Код: Выделить всё
CXX=g++
CXXFLAGS = `wx-config --cxxflags`
LDFLAGS = `wx-config --libs`
all: Shape.o Board.o Tetris.o main.o
$(CXX) -o tetris main.o Shape.o Board.o Tetris.o $(CXXFLAGS) $(LDFLAGS)
Shape.o: Shape.cpp Shape.h
$(CXX) -c Shape.cpp Shape.h $(CXXFLAGS)
Board.o: Board.cpp Board.h
$(CXX) -c Board.cpp Board.h Shape.h $(CXXFLAGS)
Tetris.o: Tetris.cpp Tetris.h
$(CXX) -c Tetris.cpp Tetris.h $(CXXFLAGS)
main.o: main.cpp main.h
$(CXX) -c main.cpp main.h $(CXXFLAGS)
clean:
rm -f *.o *.gch tetris
Spoiler
Код: Выделить всё
CXX=i686-mingw32-g++
CXXFLAGS = `wx-config --cxxflags`
LDFLAGS = `wx-config --libs`
all: Shape.o Board.o Tetris.o main.o
$(CXX) -o tetris.exe main.o Shape.o Board.o Tetris.o $(CXXFLAGS) $(LDFLAGS) -static-libgcc -static-libstdc++
Shape.o: Shape.cpp Shape.h
$(CXX) -c Shape.cpp Shape.h $(CXXFLAGS)
Board.o: Board.cpp Board.h
$(CXX) -c Board.cpp Board.h Shape.h $(CXXFLAGS)
Tetris.o: Tetris.cpp Tetris.h
$(CXX) -c Tetris.cpp Tetris.h $(CXXFLAGS)
main.o: main.cpp main.h
$(CXX) -c main.cpp main.h $(CXXFLAGS)
clean:
rm -f *.o *.gch tetris.exe
export PATH=$HOME/program/mingw-sr/wxMSW/bin:$PATH
Для статической сборки нужа будет статическая сборка wxwidgets и добавлен для gcc ключ -static.
Есть конечно много чего, что будет собираться только для windows или только для Linux. Например скринсейвер написанный для винды, но собрать его под linux не составит труда.
Последний раз редактировалось Bizdelnick 11.12.2018 14:03, всего редактировалось 1 раз.
Причина: тег [code], пробелы → табы
Причина: тег [code], пробелы → табы
Спасибо сказали:
Re: Кроссплатформенный UI в 2018?
Просто отмечу. В lazarus кросскомпиляцию настроить можно, но на практике лучше поставить виртуальную машину и компилировать на винде и nix отдельно.
Много сбоев, совсем нет отладки.
Много сбоев, совсем нет отладки.
Re: Кроссплатформенный UI в 2018?
В принципе собранное под wxMSW нормально отлаживается и запускается под вайном:
Для этого можно установить гуй для gdb - Affinic Debugger, gdb можно взять тут, и после установки прописать в Affinic Debugger. После этого можно отлаживать в граф интерфейсе.
Для этого можно установить гуй для gdb - Affinic Debugger, gdb можно взять тут, и после установки прописать в Affinic Debugger. После этого можно отлаживать в граф интерфейсе.
Re: Кроссплатформенный UI в 2018?
Есть основанный на java, язык для быстрого прототипирования Processing, домашняя страница тыц.
Подкинул ебилд для установки в Gentoo тыц.
На счет зависимостей не знаю, у меня работает в Gentoo, вроде все либы в идут комплекте.
Когда то оно послужило примером для создания среды Arduino, от сюда и схожесть интерфейсов, там есть примеры в комплекте.
Спасибо сказали: