LINUX.ORG.RU

Gtk mingw crossplatform build

 ,


1

2

Здравствуйте,

Хочу под линуксом собрать приложение с гуем(пара кнопок), и чтобы оно запускалось под виндой. Т.к. дел с виндой не хочется иметь совсем(даже собирать), выбор пал на gtk и mingw. Но т.к. в программировании еще нуб. не могу додумать как запустить helloworld.

Поставил в дебиане: mingw32, libgtk-3-0
Взял простой helloworld с использованием gtk и собираю:
$ gcc main.c `pkg-config --cflags gtk+-3.0` `pkg-config --clibs gtk+-3.0`

приложение собирается норм и запускается формочка с кнопкой.
Но, если теперь скомпилирую с i86-w64-mingw32-gcc:
$ i86-w64-mingw32-gcc main.c `pkg-config --cflags gtk+-3.0` `pkg-config --clibs gtk+-3.0`

вывалятся ошибки:
/usr/include/glib-2.0/gio/gcredentials.h:75:1: error unknown type name 'uid_t'

Как мне его собрать с i86-w64-mingw32-gcc ?

Дальше подумал может собрать gtk3 из сорцов с mingw:
$ apt-get source libgtk-3-0
$ cd gtk+3.0-3.14.5 && ./configure && make
Но как теперь это слинковать с приложением?
gcc main.c -l{че сюда писать} -L{че сюда писать}
что бы не вываливалась ошибка:
gtk/gtk.h: No such file or directory

Вообще хотелось бы, для начала, просто через дебиан репозиторий скачать пару пакетов, скомпилить с mingw, буд-то это консольное приложение и увидеть готовый exe файл . Видел в нете на сорсфорж есть скомпилированый бинарник gtk для винды,но его использовать не вариант, т.к. - хз кто его собирал.


Т.к. дел с виндой не хочется иметь совсем(даже собирать)

Виртуалки - не вариант? Тестировать результат всё-равно придётся, bundle собирать со всеми зависимыми библиотеками.

-l{че сюда писать} -L{че сюда писать}

Пути к инклудам и динамическим библиотекам в скачанном архиве.

Оно наверное не интересно, но можно держать несколько виртуалок с различными версиями виндов, где pacman-ом просто все библиотеки с зависимостями ставятся/обновляются и cmake-ом собирается, тестируется, пакуется. Попытка делать всё исключительно из под Debian не создаёт ли лишних проблем?

backbone ★★★★★
()
Последнее исправление: backbone (всего исправлений: 1)
Ответ на: комментарий от backbone

Оно наверное не интересно, но можно держать несколько виртуалок с различными версиями виндов

Точно, а ведь можно поставить wine и собирать под ним.

dume
() автор топика

Вообще хотелось бы, для начала, просто через дебиан репозиторий скачать пару пакетов, скомпилить с mingw

Для новичков лучше взять Fedora. Там уже есть куча готовых mingw пакетов.

Можешь ещё взглянуть в тему Кросскомпиляция GTK+ под win, где как раз был тот же вопрос. Начни с MXE (M cross environment), тогда ТС-у подошло:

MXE то что нужно, отличная вещь.

А потом уже можно и в Debian вручную пособирать.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.