Russian Qt Forum

Qt => Общие вопросы => Тема начата: LisandreL от Июнь 24, 2011, 14:54



Название: Пути к dll
Отправлено: LisandreL от Июнь 24, 2011, 14:54
Можно ли для статической сборки прописать пути поиска таких dll, как libgcc_s_dw2-1.dll и Qt*4.dl, что бы класть их не в одну папку с exe-шником, а например в подпапку lib.
QCoreApplication::addLibraryPath в начале main не помогает - видимо dll цепляются раньше.
Может есть какой-то ключ в pro файле?

P.S. Про возможность статической сборки знаю - сейчас вопрос не об этом.


Название: Re: Пути к dll
Отправлено: ddrtn от Июнь 24, 2011, 16:44
можно, если путь к dll указать в PATH


Название: Re: Пути к dll
Отправлено: LisandreL от Июнь 24, 2011, 21:36
Вы имеете ввиду системную переменную?
Это явно не тот путь.


Название: Re: Пути к dll
Отправлено: ритт от Июнь 25, 2011, 02:00
Вы имеете ввиду системную переменную?
Это явно не тот путь.
явно? а Вы пробовали?


Название: Re: Пути к dll
Отправлено: ddrtn от Июнь 25, 2011, 09:49
собственно, так оно все устроено. под виндой дллки ищутся в текущем каталоге, а потом в каталогах, указанных в PATH.


Название: Re: Пути к dll
Отправлено: ddrtn от Июнь 25, 2011, 09:52
В конкретном своем случае можно написать cmd файлик с установкой нужного пути в PATH и запуска затем уже приложения.


Название: Re: Пути к dll
Отправлено: LisandreL от Июнь 25, 2011, 10:35
Ну, если написать QCoreApplication::addLibraryPath("./lib"), то подцепляемые далее по программе dll смогут лежать в подпапке lib, но указанные в первом посте dll, очевидно, цепляется (и не находятся) раньше. Просто хочется структуру проекта, что бы в корне лежал только exe-ник.
Глобально PATH менять не вариант - dll предназначены только для этой программы.
CMD (или по старой привычке BAT) файл позволит локально изменить PATH, но в итоге нам прийдётся запускаться с CMD-файла, что некрасиво.


Название: Re: Пути к dll
Отправлено: ритт от Июнь 26, 2011, 09:18
ну, очевидно же, что структура папок LSB здесь не подходит.
наиболее удобной (на мой взгляд) структурой под вендами является: bin\ (*.exe, *.dll), include\ (*.h - если нужно), docs\ (*) и т.п.