![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
_Konstantin_ |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 26.11.2014 Пользователь №: 4283 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Приветствую, возник вопрос по сборке проектов Qt под Windows платформы.
Собранный проект тянет с собой несколько библиотек Qt, я их складываю вместе с собранным проектом (.\Projects\xxx.exe), в корневой каталог .\Projects, все работает прекрасно, но как то не очень это выглядит красиво. Хотелось бы эти библиотеки видеть к примеру так .\Projects\library\, а собранный файл в .\Projects\ Проекты собираю в QtCreator. |
|
|
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
_Konstantin_ |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 26.11.2014 Пользователь №: 4283 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
lanz, нужно для проектов собираемых на QtCreator, наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\
|
|
|
maint |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
lanz, нужно для проектов собираемых на QtCreator, наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\ qtcreator не собирает НИЧЕГО. |
|
|
lanz |
![]()
Сообщение
#5
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Посмотрите по ссылке как Windows ищет DLL которые нужно загрузить, это относится ко всем программам, запускаемым из под Windows, неважно как они были собраны.
Цитата наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\ К сожалению нет ![]() Иначе не возникло бы понятия https://ru.wikipedia.org/wiki/DLL_hell |
|
|
_Konstantin_ |
![]()
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 26.11.2014 Пользователь №: 4283 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Посмотрите по ссылке как Windows ищет DLL которые нужно загрузить, это относится ко всем программам, запускаемым из под Windows, неважно как они были собраны. Цитата наверняка есть механизм, который указывает, что к примеру QtCore4.dll должен находиться в \Projects\App\, а собранный файл проекта в \Projects\xxx.exe, т.е. в данном случае QtCore4.dll находится относительно файла проекта по пути \App\ К сожалению нет ![]() Иначе не возникло бы понятия https://ru.wikipedia.org/wiki/DLL_hell Странно, но в Интернете встречал проекты на Qt, где используемые проектом Qt библиотеки, располагались относительно каталога основного проекта, в собственном каталоге, как то же это делается. Так то все работает, но не красиво, когда все библиотеки вместе с исполняемым файлом находятся в одном каталоге, а прописывать глобально path в ОС тоже не выход... |
|
|
lanz |
![]()
Сообщение
#7
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Странно, но в Интернете встречал проекты на Qt, где используемые проектом Qt библиотеки, располагались относительно каталога основного проекта Можно посмотреть как в одном из таких проектов сделано. Дайте ссылку, попробую разобрать. |
|
|
_Konstantin_ |
![]()
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 26.11.2014 Пользователь №: 4283 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Странно, но в Интернете встречал проекты на Qt, где используемые проектом Qt библиотеки, располагались относительно каталога основного проекта Можно посмотреть как в одном из таких проектов сделано. Дайте ссылку, попробую разобрать. так вот и сам теперь найти не могу ![]() |
|
|
lanz |
![]()
Сообщение
#9
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Возможно это были плагины. Для них и для библиотек загружаемых через QLibrary можно(и нужно) явно указать где их брать.
http://qt-project.org/doc/qt-4.8/plugins-howto.html |
|
|
_Konstantin_ |
![]()
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 26.11.2014 Пользователь №: 4283 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Возможно это были плагины. Для них и для библиотек загружаемых через QLibrary можно(и нужно) явно указать где их брать. http://qt-project.org/doc/qt-4.8/plugins-howto.html наверное, жалко что не найду такого механизма, тогда придется все в одном каталоге держать... |
|
|
Litkevich Yuriy |
![]()
Сообщение
#11
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
_Konstantin_, Винда ищит DLL сначал в текущем каталоге бинаря, а затем в каталогах перечисленных в переменной PATH.
Поэтому, если при установке программы добавить путь к Qt-бибилиотекам в PATH, то так мы можем подсказать Винде где искать. Но этого недостаточно, т.к. сам exe-шник из-за жёстко зашитых путей будет искать DLL-ки Qt в корне, можно попробовать поэксплуатировать qt.conf П.С. тут по-русски |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 22.6.2025, 7:34 |