Russian Qt Forum
Ноябрь 23, 2024, 15:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы? (Прочитано 5721 раз)
abodnya
Гость
Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
:
Апрель 12, 2013, 16:49 »
У меня стоит Qt5, у друга Qt4. Я написал курсач с использованием QtOpenGL, но друг не может у себя его запустить, т.к. не хватает либы libQt5OpenGL.so.5
Как ему запустить мой курсач, при этом не ставя себе Qt5 ?
Могу ли я прикладывать к исполняемому файлу эту либу так, чтоб программа искала эту либу в текущей папке, а не в системном каталоге?
И могу ли я заставить QtCreator автоматически прикладывать эти либы к готовому файлу?
Еще вопрос. Аналогичная ситуация у меня если компилю под винду. Приходится тащить с собой кучу тяжелых dll-ок. Как я могу настроить программу так, чтоб она создавала одну единую dll-ку со всеми нужными мне функциями, а не используемые в dll не добавляла, чтоб на выходе доп.библиотеки к программе весили на порядок меньше?
Записан
Bepec
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #1 :
Апрель 12, 2013, 16:57 »
DLL зависимости появляются от того, какие компоненты ты использовал в программе. То, что ты не использовал - с тебя программа и не потребует.
Да, чтобы программа запускалась на других компах, необходимо таскать с собой DLL.
Да, ты можешь собирать программу статически (1 файл), но для этого нужно собрать статически всю Qt и познать дзен.
Да, (уверен на 50%) ты можешь заставить QtCreator копировать dll в папку с релизом твоей программы
PS тяжёлые это 10 мб? ну ну.
Записан
abodnya
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #2 :
Апрель 12, 2013, 17:19 »
Ну там идет одна длл-ка на 180 мб (вроде бы QtGuid.dll, не уверен точно), для программы. которая весит меньше мегабайта таскать с собой 180 мб неразумно как по мне. Если б либа была и правда 10 мб, это не составляло б проблемы.
Можно пожалуйста получить ссылки на гайды, желательно на русском, но можно и на английском?
Записан
alex312
Хакер
Offline
Сообщений: 606
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #3 :
Апрель 12, 2013, 17:23 »
Цитата: abodnya от Апрель 12, 2013, 17:19
Ну там идет одна длл-ка на 180 мб (вроде бы QtGuid.dll, не уверен точно), для программы. которая весит меньше мегабайта таскать с собой 180 мб неразумно как по мне. Если б либа была и правда 10 мб, это не составляло б проблемы.
А ты не таскай отладочную версию, таскай релизную.
Записан
Bepec
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #4 :
Апрель 12, 2013, 17:29 »
Ссылки не получить. Это аксиомы, получаемые опытным путём
Пару слов о dll в Qt. Все dll с буквой d на конце - дебажные.
Дебаг сборка программы - она для отладки и не предназначена для использования и передачи. Она настолько огромна, потому что содержит отладочную информацию.
Потому что надо делать - собрать релизную версию программы и тянуть релизные dll (без d).
Минимальная сборка программы составляет около 5 мб (для Qt 4.7.2).
Записан
abodnya
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #5 :
Апрель 12, 2013, 17:32 »
Спасибо за ответ) Теперь буду только релизную версию юзать для передачи программ)
Остался открытым второй вопрос. Могу ли я также таскать *.so линуксные либы с прогой, как я это делаю сейчас под виндой?
Или в линуксе пользователь обязан ставить необходимые пакеты через apt-get ?
Записан
maint
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #6 :
Апрель 12, 2013, 17:46 »
Цитата: abodnya от Апрель 12, 2013, 17:32
Спасибо за ответ) Теперь буду только релизную версию юзать для передачи программ)
Остался открытым второй вопрос. Могу ли я также таскать *.so линуксные либы с прогой, как я это делаю сейчас под виндой?
Или в линуксе пользователь обязан ставить необходимые пакеты через apt-get ?
это смотря какой линух. Может и не apt-get, а yum скажем. Добра хватает :-). В принципе, если линухи одноименные и одной версии, то можно и с собой. Либо бросить в какой-нибудь /usr/local/lib. В теории можно в один каталог с программой и запускать.
Записан
Bepec
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #7 :
Апрель 12, 2013, 18:28 »
Линуксов дофига версий со своими особенностями. Потому скомпиленное на одном может не запуститься на другом.
Вывод? можно, но есть шанс некорректной работы.
Записан
abodnya
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #8 :
Апрель 12, 2013, 18:33 »
хорошо, как тогда мне сделать так, чтоб программа при первом запуске искала недостающие либы и давала запрос на их закачку, описывая точное название недостающих пакетов?
Записан
quiet_readonly
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #9 :
Апрель 12, 2013, 18:44 »
Цитата: abodnya от Апрель 12, 2013, 18:33
хорошо, как тогда мне сделать так, чтоб программа при первом запуске искала недостающие либы и давала запрос на их закачку, описывая точное название недостающих пакетов?
Сделать программу-обёртку, которая сама будет иметь минимум зависимостей и будет проверять наличие нужных библиотек (хоть бы и через ldd), при отсутствии предлагать установить (хоть бы и через package kit). Но это не принято в linux (и рабочих программ с таким трюком я не видел), лучше компилируйте с Qt4, особой разницы пока что нет.
Записан
abodnya
Гость
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #10 :
Апрель 12, 2013, 21:10 »
Уже перешел на Qt5 ) Вот всё жду пока у них поддержка Android и iOS полностью наладится, та и написание приложений под Ubuntu Phone пока импонирует
Записан
PinkPanther
Самовар
Offline
Сообщений: 169
Re: Как заставить IDE при компилировании прикладывать к исполняемому файлу либы?
«
Ответ #11 :
Апрель 27, 2013, 04:19 »
Года четыре назад я написал небольшую утилиту (с использованием Qt 4.3, кажется) и выложил на сайт, ее скачало человек 200-300. Она использовала сеть, STL, немного виджетов. Чтобы с комфортом ее раздать, нашел torrents.ru инсталлятор, с помощью которого делают репаки игр. Скормил ему свой .exe, он сам нашел все нужные DLL, запаковал, и при распаковке DLL падали в каталог программы. От скачавших не поступило ни одной рекламации (видимо, у всех все работало), файл-инсталлер весил несколько мегабайт.
Записан
Эвтаназия - наше хобби!
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...