LINUX.ORG.RU

MinGW32 + GTK+ падает прорамма

 , ,


0

2

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

Столкнулся с такой проблемой.

В Linux с использованием mingw32 собираю программу на GTK+.

Далее использую mingw32-objdum (рекурсивно) для выявления зависимостей от DLL'ок

Создаю структуру каталогов аля Linux: bin, lib, etc, share

Копирую библиотеки и исполняемый файл в каталог bin.

Остальные каталоги заполнены по аналогии с GTK runtime.

Запускаю программу и при попытке перемещения окна программа падает (в Win 7 зависает), если окно не перемещать все работает нормально. В Linux никаких проблем не наблюдается.

Если использую скачанные с gtk.org библиотеки, программа не запускается и ругается на невозможность найти точку входа для различных процедур.

Подскажите, пожалуйста, в чём тут дело.



Последнее исправление: cetjs2 (всего исправлений: 3)
Ответ на: комментарий от Dragon59

У меня скриптами собирается под винду и под линукс одновременно. Под виндой собрать нет возможности.

armowl
() автор топика
Ответ на: комментарий от armowl

В gdb/strace под Windows нельзя посмотреть, что просходит?

backbone ★★★★★
()

Если использую скачанные с gtk.org библиотеки, программа не запускается и ругается на невозможность найти точку входа для различных процедур.

значит, точки входа в скачанных библиотеках и собранных руками — разные. Собери библиотеки руками специально под винду (в том числе, и из-под линукса).

Или собери свою программу под винду статически.

anonymous
()
Ответ на: комментарий от anonymous

я использую библиотеки уже собранные под linux'ом для винды (они входят в mingw в linux, поставленный из репозитария, у меня openSUSE 12.1)

armowl
() автор топика
Ответ на: комментарий от pacify

Всё-таки, возможность собирать только под Linux (для
Windows) - это крутой экстрим. И рассчитывать на это
серьезно не стоит. Лучше иметь два способа сборки (под
виндовым mingw, и линуксовым mingw).

pacify ★★★★★
()
Ответ на: комментарий от pacify

Может и экстрим :)

Собранная служба работает прекрасно.

Проблема только с GUI на GTK (другие GUI не пробовал)

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

Ну е-мае. Отладчики для кого придумали?

Также, ивент логи смотри на винде (application). Запусти под process monitor. И тд.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от armowl

(они входят в mingw в linux, поставленный из репозитария, у меня openSUSE 12.1)

Вот тоже так хочу, только в Debian. Пока приходится в виртуалке собирать. Авось скоро решусь rpm'ки попробовать.

gag ★★★★★
()
Ответ на: комментарий от DELIRIUM

В ивент ничего не пишется.

Выше я немного не правильно сказал что программа падает.

В 7 виснет, а в XP выскакивает сообщение http://repository.promsd.ru/Graphics15.png

Все вариации редистрибьютеблов уже пробовал, не помогает.

armowl
() автор топика
Ответ на: комментарий от armowl

Боюсь, с gtk так не выйдет. Я не видел ни одной gtk-программы под винду, которая не таскала бы за собой gtk-библиотеки.

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

в проект добавлять дополнительные бинарники для сборки не удобно, при установке, конечно, dll'ки таскаются с программой

armowl
() автор топика
Ответ на: комментарий от armowl

Тем временем попробовал то, что buddhist предложил? Вроде как логично, собирать именно с теми библиотеками, что и для рантайма используются. Т.е. или виндовые использовать для сборки, или линуксовые-мингв для рантайма под виндой.

gag ★★★★★
()
Ответ на: комментарий от armowl

Итак, я наконец-то осуществил давно желаемое: собрать gtk-прогу под debian для винды. Загрузил с http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Factory/noarch rpm'ки:

mingw32-atk-2.4.0-1.14.noarch.rpm
mingw32-atk-devel-2.4.0-1.14.noarch.rpm
mingw32-cairo-1.10.2-8.4.noarch.rpm
mingw32-cairo-devel-1.10.2-8.4.noarch.rpm
mingw32-clutter-1.6.20-2.72.noarch.rpm
mingw32-clutter-devel-1.6.20-2.72.noarch.rpm
mingw32-freetype-2.4.9-1.21.noarch.rpm
mingw32-freetype-devel-2.4.9-1.21.noarch.rpm
mingw32-fontconfig-2.9.0-1.8.noarch.rpm
mingw32-fontconfig-devel-2.9.0-1.8.noarch.rpm
mingw32-gdk-pixbuf-2.26.1-1.10.noarch.rpm
mingw32-gdk-pixbuf-devel-2.26.1-1.10.noarch.rpm
mingw32-libgladeui-3.8.2-1.12.noarch.rpm
mingw32-libgladeui-devel-3.8.2-1.12.noarch.rpm
mingw32-glib2-2.32.3-1.1.noarch.rpm
mingw32-gtk2-2.24.10-2.10.noarch.rpm
mingw32-gtk2-devel-2.24.10-2.10.noarch.rpm
mingw32-gtk3-3.4.2-2.5.noarch.rpm
mingw32-gtk3-devel-3.4.2-2.5.noarch.rpm
mingw32-gtk3-data-3.4.2-2.5.noarch.rpm
mingw32-libintl-0.18.1.1-13.133.noarch.rpm
mingw32-libintl-devel-0.18.1.1-13.133.noarch.rpm
mingw32-libpng-1.5.10-1.11.noarch.rpm
mingw32-libpng-devel-1.5.10-1.11.noarch.rpm
mingw32-pango-1.30.0-2.10.noarch.rpm
mingw32-pango-devel-1.30.0-2.10.noarch.rpm
mingw32-pixman-0.24.4-1.39.noarch.rpm
mingw32-pixman-devel-0.24.4-1.39.noarch.rpm
mingw32-pkg-config-0.26-2.9.noarch.rpm
mingw32-runtime-20120404-1.14.noarch.rpm
mingw32-zlib-1.2.7-1.4.noarch.rpm
mingw32-zlib-devel-1.2.7-1.4.noarch.rpm
Установил gcc-mingw-w64-i686_4.6.3, получил от pkg-config cflags, libs, подправил пути (запускал из-под wine). Скомпилировал простой пример и... работает. Под вайном и с opensuse либами, и с оригинальными (распакованный gtk-bundle 2.24.10). Под ИксПи у меня стоят только последние.

Попробую ещё что-нибудь посложнее собрать.

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