LINUX.ORG.RU

проблема с DLL-библиотеками Gtk+ в Windows


0

0

Возникла проблема при распросранении приложения, испольщующего Gtk+ в венде У меня на рабочем компе стоит обычный Gtk-runtime и Dev-pack. Приложение без проблем запускается, находит все нужные длл-ки.

На других машинах ставлю только обычный Gtk-runtime (по сути тоже самое, только без хедер-файлов и библиотек). Запускаю свою софтинку и она жалуется, что не может найти длл-библиотеки. Тем не менее другие приложения (Pidgin, GIMP и др.) работают без проблем. В переменную окружения Path ничего не записывается, а на моём компе там прописаны все пути.

Как сделать так, чтобы моя программа находила нужные библиотеки? И как это может быть сделано в том же пидгине?

Заранее спасибо.


возможно пиджин таскает гтк либы в своем каталоге, т.е. где екзешник пиджина, там и либы. Последние версии гимпа точно идут с либами. Можно сделать так же. Создаешь каталог bin, кидаешь прогу с библиотеками гтк, нужно так же создать каталоги etc и share и закинуть туда часть файла из гткашного etc и share (какое файло нужно, выяснишь экспериментально, если лень возится, то можно все). Т.о. у тебя получится самодостаточное гтк приложение, не требующее дополнительных телодвижений по установке рантайма.

А пути в path таки пропиши.

anonymous
()

>>В переменную окружения Path ничего не записывается, а на моём компе там прописаны все пути.

ну вот и пропиши,

или вкомпилируй в софтину нужные пути, или оставь с софтиной в одном каталоге либы все

lazyklimm ★★★★★
()

Дело может быть совсем не в путях. А каким компилером под винду собрано? Если какой-нить новомодной студией то надо не забыть ее runtime. Если mingw то тоже идет какая-то либа (вроде только для ++).

Сам не раз сталкивался с проблемой. Под линукс ок, по винду на машишне сборки ок, на рабочей машине нет.

Вот софтина для отслеживания зависимостей для dll http://www.dependencywalker.com/

Я правда никогда проекты на gtk не собирал. У меня всегда были Qt Gui + логика на C в отдельной либе. Там никаких путей не надо достаточнго либ прямо с бинарником в каталоге. Если проблем с dll нет, тогда смотри уже особенности gtk.

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

>Последние версии гимпа точно идут с либами. Вы что? ничего подобного, гтк ставится отдельно )

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

огромное спасибо за ссылочку.

посмотрел, гимп действительно с собой носит все библиотеки гткшные. А пидгин нет, у него в установщик встроен инсталлер библиотек, но в Path он ничего не прописывает. Я конечно себе мог бы прописать все необходимые пути, но хочу чтобы конечный пользователь (тем более вендовый ;) ) прилагал минимум усилий при установке.

Идеальный вариант - ставит Gtk-Runtime, ставит моё приложение, запускает и всё работает. Но если так делать, то мой софт не может найти эти, только что установленные, библиотечки. А пидгин может, как - не понятно пока что.

Может быть через реестр каким-то образом?

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

Педжин с соурсфорджа обычно предлагают скачать в двух вариантах - с gtk и без оного. По умолчанию толкают с gtk, от чего установщик зверски толстеет.

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

Установщик толстеет, но гтк однако он ставит в левую папку, а не в свою.

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

тема то оффтоп :) сайт как бы про линукс ;)

Deleted
()
Ответ на: Upd от MofR

у папке mingw есть одна dll-ка, не помню ее название. она точно включена в дистрибутив твоей программы?

а вообще есть замечательные утилиты, которые показывают, какие dll-ки требуются exe-нику

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