Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Программа в один файл

Автор: RazrFalcon 28.5.2010, 16:52

Тема не новая и не раз уже и сам ее встречал но так ничего путнего из этого не вышло.
После компиляции у меня еще 5 dll нужно таскать с релизом + мой файл текстовый
1. Как это все впихнуть в один ехе?
2. Пробовал .тхт в ресурсы пихать но оно его не перезаписывает, возможно ли это вообще? С помощью UPX сжал все, но все равно 5 мб выходит. 7 файлов в папке, не очень надежно, так как пользователь может что то случайно удалить и се. В конце-концов остальные проги же "однофайловые", по крайней мере c++ builder делал мне 1-н переносимый .ехе и всего 1Мб (этаже прога что пишу на qt) <_<

Автор: Litkevich Yuriy 28.5.2010, 17:08

лучше сразу забить или уйти от Qt, для неё это не решаемая задача в общем случае.

Автор: RazrFalcon 28.5.2010, 18:21

Цитата(Litkevich Yuriy @ 28.5.2010, 17:08) *
лучше сразу забить или уйти от Qt, для неё это не решаемая задача в общем случае.

Почему это, ведь находил не раз что жалуются что мол .ехе под 5-ть метров, меня устроит.
И есть же к примеру для Net сборщик, не помню как он там называется.
короче пока поищю, сомневаюсь что это невозможно. Кстати вопрос насчет .тхт в ресурсах с перезаписью интересует до сих пор.
PS да и переходить не на что, кьют больше всех устраивает, а vlc не настолько функциональный и удобный, да и про MFC вообще молчу, не могу пользоваться студией, просто ненравится. Да и кроссплатформ как никак, это основная причина.

Автор: Litkevich Yuriy 28.5.2010, 18:57

один исполняемый файл - статическая сборка. Но судя по разным обсуждениям, в последних версиях Qt люди часто встречаются с разными проблемами при статической сборке.

Автор: Andrewshkovskii 28.5.2010, 18:58

Для того, что бы не таскать с собой Qt-ые dll-ки - собери Qt в статике.

Автор: RazrFalcon 28.5.2010, 19:07

Цитата(Andrewshkovskii @ 28.5.2010, 18:58) *
Для того, что бы не таскать с собой Qt-ые dll-ки - собери Qt в статике.

Поподробней если можно.

PS пока единственный вариант BoxedApp Packer. Получается 1-н файл, внутри ехе и dll, типа portable как раз и выходит. Правда 299$ как то не очень и взломанных хотя бы к примеру я не нашел.

Автор: Andrewshkovskii 28.5.2010, 19:14

Необходимо собрать Qt в static режиме (т.е. при конфигурировании указать ключ -static )

Автор: Litkevich Yuriy 28.5.2010, 20:02

RazrFalcon, а чем тебя не устраивает программа-установщик?
Сделай свой установщик и распространяй один файл.

Автор: RazrFalcon 28.5.2010, 20:53

Цитата(Andrewshkovskii @ 28.5.2010, 19:14) *
Необходимо собрать Qt в static режиме (т.е. при конфигурировании указать ключ -static )

Мне лично ни очем это говорит =/
Как, чем, зачем и почему изначально он не такой.

Насчет инсталера это понятно, но все равно нето мне нужен 1 файл, пока прогой вышеуказаной буду пользоватся.

Автор: Andrewshkovskii 29.5.2010, 14:10

Цитата(RazrFalcon @ 28.5.2010, 21:53) *
Цитата(Andrewshkovskii @ 28.5.2010, 19:14) *
Необходимо собрать Qt в static режиме (т.е. при конфигурировании указать ключ -static )

Мне лично ни очем это говорит =/
Как, чем, зачем и почему изначально он не такой.

Насчет инсталера это понятно, но все равно нето мне нужен 1 файл, пока прогой вышеуказаной буду пользоватся.

http://www.wiki.crossplatform.ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Qt и http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_Qt_%D0%B2_MS_Windows и http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MS_Visual_Studio%29 и http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MinGW%29

Автор: RazrFalcon 29.5.2010, 16:17

Цитата(Andrewshkovskii @ 29.5.2010, 14:10) *
http://www.wiki.crossplatform.ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Qt и http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_Qt_%D0%B2_MS_Windows и http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MS_Visual_Studio%29 и http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MinGW%29

Установка Qt - бесполезно так как использую Qt Creator
Развертывание приложений Qt в MS Windows - написано что .dll с собой таскать надо, ну эт я и так знал
Сборка Qt без зависимостей (MSVC) - тоже что и в первом (Qt Creator), так что неважно
Сборка Qt без зависимостей (MinGW) - сделал, вроде пашит, ну так всеравно только -1 файл.
Так что вопрос еще в силе, разве что самому написать прогу типа той которую я использую в trial.

Автор: kibsoft 29.5.2010, 16:31

Цитата
сделал, вроде пашит, ну так всеравно только -1 файл.

Что значит все равно 1?
Для начала тебе надо собрать qt статически, затем проделать "Сборка Qt без зависимостей (MinGW)"
http://www.prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
Про Windows тоже есть.

Автор: RazrFalcon 29.5.2010, 17:27

Цитата(kibsoft @ 29.5.2010, 16:31) *
Цитата
сделал, вроде пашит, ну так всеравно только -1 файл.

Что значит все равно 1?
Для начала тебе надо собрать qt статически, затем проделать "Сборка Qt без зависимостей (MinGW)"
http://www.prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
Про Windows тоже есть.

То есть без пересборки QT в статике никак. Жаль. Ну это не очень хочется пока делать, лучше когда уже уж очень нужно будет.

Автор: Litkevich Yuriy 29.5.2010, 18:18

Цитата(RazrFalcon @ 29.5.2010, 20:17) *
Установка Qt - бесполезно так как использую Qt Creator
вообще оригинальное умозаключение. У меня других слов нет

Автор: Andrewshkovskii 29.5.2010, 18:29

Цитата(RazrFalcon @ 29.5.2010, 17:17) *
Цитата(Andrewshkovskii @ 29.5.2010, 14:10) *
http://www.wiki.crossplatform.ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Qt и http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9_Qt_%D0%B2_MS_Windows и http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MS_Visual_Studio%29 и http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MinGW%29

Установка Qt - бесполезно так как использую Qt Creator
Развертывание приложений Qt в MS Windows - написано что .dll с собой таскать надо, ну эт я и так знал
Сборка Qt без зависимостей (MSVC) - тоже что и в первом (Qt Creator), так что неважно
Сборка Qt без зависимостей (MinGW) - сделал, вроде пашит, ну так всеравно только -1 файл.
Так что вопрос еще в силе, разве что самому написать прогу типа той которую я использую в trial.

А QtCreator это что - все Qt? крийэтор это лишь IDE которая создана для упрощения разработки приложений с помощью фреймворка Qt. Ты не обязательно должен писать Qt-вые приложения в нем, можно и без Qt.. Ты видимо плохо понимаешь , что такое Qt в целом, и по частям..

Автор: RazrFalcon 29.5.2010, 18:54

Цитата(Litkevich Yuriy @ 29.5.2010, 18:18) *
Цитата(RazrFalcon @ 29.5.2010, 20:17) *
Установка Qt - бесполезно так как использую Qt Creator
вообще оригинальное умозаключение. У меня других слов нет

Я имел ввиду что я работаю в скачанной SDK версии, установил и все работает, не нужно компилить и все остальное.
Сглупил немного, просто там думал как раз над прогой и не о том мысли были. :rolleyes:

Цитата(Andrewshkovskii @ 29.5.2010, 18:18) *
Ты видимо плохо понимаешь , что такое Qt в целом, и по частям...

Я понимаю что можно и в студии писать просто подключив кьютешные библиотеки и остальное, и что просто c помощью gcc компилить.
Просто мне удобно работать в креаторе, а студией я редко пользуюсь и ну не знаю не нравится и все тут.

Автор: Andrewshkovskii 30.5.2010, 11:49

Да причем тут IDE! ты можешь в любой среде разрабатывать, хоть в блокноте! Речь идет о исходниках Qt, их конфигурировании и дальнейшей сборки всей библиотеки !

Автор: RazrFalcon 2.6.2010, 18:48

Ладно забудем про статическую сборку и тому подобное.
Как сделать:
1) допустим что прога типа - инсталер.
2) как достать какой то файл из ресурсов (или откуда то еще) и перенести его по нужному пути.
3) так как инсталер обязательно должен быть в 1-н файл то получается никак нельзя без статической сборки, и снова у меня с этим проблема. <_<
4) как создать что то на подобии виртуальной папки, чтоб в ней лежал ехе мой и dll'ки, но вид был как у просто ехе. По типу, как это делает AppBoxer Packer. Он собирает все файлы под один ехе и все работает нормально. Можно ссылки на похожие free проги или на то как это можно создать.

Автор: Litkevich Yuriy 2.6.2010, 23:40

RazrFalcon, читай тему - http://www.forum.crossplatform.ru/index.php?showtopic=5002

Автор: RazrFalcon 3.6.2010, 7:30

Цитата(Litkevich Yuriy @ 2.6.2010, 23:40) *
RazrFalcon, читай тему - http://www.forum.crossplatform.ru/index.php?showtopic=5002

Нуу... не то немного, инсталер я уже умею делать.
Интересует именно пункты 2) и 4)
PS Где можно скачать собраный в статике QT чтоб самому не делать, сомневаюсь что каждый ждет по 5 часов только чтоб собрать это все. Должен был же быть, кто то уже выложил готовое.

Автор: Andrewshkovskii 3.6.2010, 11:21

Нигде, т.к. Qt собранный в статике (с демками, примерами, дебагом) весит как современная компьютерная игра - много.
Насчет 4го пункта - объясни,придумай,расскажи для чего же тебе требуется всего один файл?

Автор: Litkevich Yuriy 3.6.2010, 11:27

Цитата(Andrewshkovskii @ 3.6.2010, 15:21) *
Насчет 4го пункта - объясни,придумай,расскажи для чего же тебе требуется всего один файл?
+1
и насчёт второго я тоже не понял. Если есть установщик, то нужда в остальных пунктах по идее должна отпасть.

Автор: RazrFalcon 3.6.2010, 11:52

Цитата(Andrewshkovskii @ 3.6.2010, 11:21) *
Нигде, т.к. Qt собранный в статике (с демками, примерами, дебагом) весит как современная компьютерная игра - много.

Что значит много, у меня со всем набором всего 1.5Гб, разве это много. С помощью торрентов передать запросто.

В принципе один файл нужен просто ради интереса, острой нужды в нем у меня нет, просто было интересно как это делается.
Ну а пока Excelsior устраивает.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)