Название: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: PinkPanther от Июнь 23, 2020, 12:16 Здравствуйте!
Давным-давно не пользовался Qt, и вот опять возникла необходимость... Возникло 2 вопроса общего характера. 1) Как установить/настроить Qt для создания демки, чтобы потом без проблем упаковать релиз каким-нибудь бесплатным инсталлятором и демка запустилась на других машинах? В комплекте должны быть все необходимые файлы. Подключены multimedia, sql, core и виджеты. Имеется ресурсный файл с картинками и звуками. Текущая версия Qt - 5.14.2, 64 бита, MinGW. В целях максимальной совместимости хотелось бы собрать в 32-битном виде. 2) Демка написана для тайских пользователей, в ней много текста на тайском. Интерфейс на тайском, и много тайского текста в базе данных. Интерфейс работает замечательно, но есть процедура, экспортирующая базу в файл. Она создает обычный текстовый файл, скидывает туда строчки базы, и вместо тайских символов в файле сохраняются знаки вопроса. Как сохранить переменные QString (юникод) в текстовом файле? Желательно как читабельный текст, но можно и в бинарном виде. Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: tamplier от Июнь 23, 2020, 13:02 1) Вот настройка статической сборки - https://yourdevice.net/forum/viewtopic.php?f=19&t=1943#p2931 (https://yourdevice.net/forum/viewtopic.php?f=19&t=1943#p2931), проверял в Qt ver. 5.3 у меня работало, не знаю как будет в 5.14...
2) Не подскажу, надо интернет листать, но если погуглить, то можно много инфы на эту тему найти. Думаю в сторону этого класса надо копать - https://doc.qt.io/qt-5/qtextcodec.html (https://doc.qt.io/qt-5/qtextcodec.html) Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: qate от Июнь 23, 2020, 14:19 1. Ничего не надо собирать, особенно статиком, "нарушая" lgpl. Качаешь (если еще нет) 32 битный бинарник- исталлятор, ставишь, компеляешь как обычно
1.1 Собираешь дистр (либы и немного плагинов) в каталог приложения и используя Inno Setup делаешь инсталлятор Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: kambala от Июнь 23, 2020, 14:20 2) QTextStream setAutoDetectUnicode(true)
Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: PinkPanther от Июнь 24, 2020, 09:29 1. Ничего не надо собирать, особенно статиком, "нарушая" lgpl. Качаешь (если еще нет) 32 битный бинарник- исталлятор, ставишь, компеляешь как обычно 1.1 Собираешь дистр (либы и немного плагинов) в каталог приложения и используя Inno Setup делаешь инсталлятор Да, так можно. Я так делал 3 года назад с какой-то из 5-х версий, но получится пакет размером 1.5 гиг. :( А при статической компиляции (правда, на 4-ке) получился экзешник 20 мегабайт со всеми нужными либами внутри + несколько мелких файлов. Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: PinkPanther от Июнь 24, 2020, 09:30 Всем спасибо за советы, пошел ковыряться... :)
Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: tamplier от Июнь 24, 2020, 10:57 Да, так можно. Я так делал 3 года назад с какой-то из 5-х версий, но получится пакет размером 1.5 гиг. :( А при статической компиляции (правда, на 4-ке) получился экзешник 20 мегабайт со всеми нужными либами внутри + несколько мелких файлов. У меня программа скомпилированная на Qt 5.3 получилась 15 Мб (программа содержит разные виджеты, диалоговые окна, есть справка, работает с БД MSSQL и большими текстовыми файлами, и т.д.) Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: PinkPanther от Июнь 24, 2020, 12:45 Наверное вы добавили библиотеки только тех объектов, которые были использованы в программе. У меня так много всего, что придется долго отбирать, что использовано а что нет.
В соответствии с LGPL лицензией, я, кажется, должен буду добавить к демке не только библиотеки, но и исходники Qt. Мне бы хотелось запихнуть все в один исполняемый файл. Демка не для всеобщего обозрения, а будет высылаться по запросу, в ответ на проявленный интерес. Так что вопросы о нарушении лицензии в данном случае вряд ли уместны... Демка абсолютно бесплатна, а платной версии программы не существует и вряд ли она появится раньше, чем будет куплена коммерческая версия Qt. Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: tux от Июнь 24, 2020, 14:57 Так что вопросы о нарушении лицензии в данном случае вряд ли уместны... Почему? Вполне будут уместны. Они будут НЕ уместны, если вы программу используете сами, никому не показывая. А так будет вполне себе нарушение лицензии.Мне просто интересно - зачем всем именно 1 исполняемый файл? Не проще ли сделасть инсталлятор - он заодно и избавит от вопросов "где та программа, которую я зачем то ставил на прошлой неделе?" Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: qate от Июнь 25, 2020, 10:11 В соответствии с LGPL лицензией, я, кажется, должен буду добавить к демке не только библиотеки, но и исходники Qt. 1. если изменений Qt самостоятельно не проводилось, то и нечего прилагать кроме ссылки на Qt 2. выбрать из всего Qt только нужные либы - это не сложно, он даже сам сакет чего ему не хватает Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: tamplier от Июнь 25, 2020, 12:48 Мне просто интересно - зачем всем именно 1 исполняемый файл? Не проще ли сделасть инсталлятор - он заодно и избавит от вопросов "где та программа, которую я зачем то ставил на прошлой неделе?" Это риторический вопрос, у каждого свои причины, так же можно спросить, зачем кому-то нужны портабл версии ПО? Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: tamplier от Июнь 25, 2020, 12:54 Наверное вы добавили библиотеки только тех объектов, которые были использованы в программе. У меня так много всего, что придется долго отбирать, что использовано а что нет. В соответствии с LGPL лицензией, я, кажется, должен буду добавить к демке не только библиотеки, но и исходники Qt. Мне бы хотелось запихнуть все в один исполняемый файл. Демка не для всеобщего обозрения, а будет высылаться по запросу, в ответ на проявленный интерес. Так что вопросы о нарушении лицензии в данном случае вряд ли уместны... Демка абсолютно бесплатна, а платной версии программы не существует и вряд ли она появится раньше, чем будет куплена коммерческая версия Qt. Нет не только, я ничего не менял в добавляемых модулях, потому-что боялся, что что-нибудь не будет работать, а статическая сборка создается мягко говоря не быстро... Там было немало лишнего, что по идее можно было убрать, но как я ранее объяснил не стал этого делать, для меня не критично было сколько весит экзэшник 15 Мб, или 9 Мб... Единственное добавил модуль ms-sql, так-как мне нужен был функционал работающий с ms sql server. Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: PinkPanther от Июнь 30, 2020, 19:09 Подсчитал объем .dll библиотек в папке компилятора bin, в сумме 110 мегабайт. Если это все, что нужно для запуска приложения на другой машине, то супер.
Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: kuzulis от Июнь 30, 2020, 19:30 что-то многовато
Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: kambala от Июнь 30, 2020, 22:41 открой свой экзэшник в программе dependency walker — он покажет требуемые длл
Название: Re: Статическая сборка 5.14 , сохранение юникода в файле Отправлено: PinkPanther от Июль 01, 2020, 11:31 Цитировать что-то многовато Половина в приложении не используется, остается 50. открой свой экзэшник в программе dependency walker — он покажет требуемые длл Спасибо, попробую! |