Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сборка проектов Qt
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
_Konstantin_
Приветствую, возник вопрос по сборке проектов Qt под Windows платформы.
Собранный проект тянет с собой несколько библиотек Qt, я их складываю вместе с собранным проектом (.\Projects\xxx.exe), в корневой каталог .\Projects, все работает прекрасно, но как то не очень это выглядит красиво.
Хотелось бы эти библиотеки видеть к примеру так .\Projects\library\, а собранный файл в .\Projects\
Проекты собираю в QtCreator.
_Konstantin_
lanz, нужно для проектов собираемых на QtCreator, наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\
maint
Цитата(_Konstantin_ @ 18.1.2015, 23:47) *
lanz, нужно для проектов собираемых на QtCreator, наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\

qtcreator не собирает НИЧЕГО.
lanz
Посмотрите по ссылке как Windows ищет DLL которые нужно загрузить, это относится ко всем программам, запускаемым из под Windows, неважно как они были собраны.

Цитата
наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\

К сожалению нет :lol:
Иначе не возникло бы понятия https://ru.wikipedia.org/wiki/DLL_hell
_Konstantin_
Цитата(lanz @ 18.1.2015, 21:35) *
Посмотрите по ссылке как Windows ищет DLL которые нужно загрузить, это относится ко всем программам, запускаемым из под Windows, неважно как они были собраны.

Цитата
наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\

К сожалению нет :lol:
Иначе не возникло бы понятия https://ru.wikipedia.org/wiki/DLL_hell

Странно, но в Интернете встречал проекты на Qt, где используемые проектом Qt библиотеки, располагались относительно каталога основного проекта, в собственном каталоге, как то же это делается. Так то все работает, но не красиво, когда все библиотеки вместе с исполняемым файлом находятся в одном каталоге, а прописывать глобально path в ОС тоже не выход...
lanz
Цитата
Странно, но в Интернете встречал проекты на Qt, где используемые проектом Qt библиотеки, располагались относительно каталога основного проекта

Можно посмотреть как в одном из таких проектов сделано. Дайте ссылку, попробую разобрать.
_Konstantin_
Цитата(lanz @ 18.1.2015, 22:17) *
Цитата
Странно, но в Интернете встречал проекты на Qt, где используемые проектом Qt библиотеки, располагались относительно каталога основного проекта

Можно посмотреть как в одном из таких проектов сделано. Дайте ссылку, попробую разобрать.

так вот и сам теперь найти не могу :) помню находил и не раз, даже по моему где встречал в литературе
lanz
Возможно это были плагины. Для них и для библиотек загружаемых через QLibrary можно(и нужно) явно указать где их брать.
http://qt-project.org/doc/qt-4.8/plugins-howto.html
_Konstantin_
Цитата(lanz @ 18.1.2015, 22:27) *
Возможно это были плагины. Для них и для библиотек загружаемых через QLibrary можно(и нужно) явно указать где их брать.
http://qt-project.org/doc/qt-4.8/plugins-howto.html

наверное, жалко что не найду такого механизма, тогда придется все в одном каталоге держать...
Litkevich Yuriy
_Konstantin_, Винда ищит DLL сначал в текущем каталоге бинаря, а затем в каталогах перечисленных в переменной PATH.
Поэтому, если при установке программы добавить путь к Qt-бибилиотекам в PATH, то так мы можем подсказать Винде где искать.
Но этого недостаточно, т.к. сам exe-шник из-за жёстко зашитых путей будет искать DLL-ки Qt в корне, можно попробовать поэксплуатировать qt.conf
П.С.
Цитата(lanz @ 18.1.2015, 21:27) *
тут по-русски
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.