LINUX.ORG.RU

Ответ на: комментарий от next_time

Больше никак. И 6 МБ для Qt5-приложения - курам на смех.

Кстати, правильный и хороший антивирус должен понимать, что исполнительный файл запакован пакером, распаковать его и проверить. А вообще под винду нужно делать инсталлер.

EXL ★★★★★ ()
Ответ на: комментарий от DeadEye

И как она сократит размер программы, если Qt-приложения на системах отличных от GNU/Linux обязаны таскать за собой библиотеки?

EXL ★★★★★ ()
Ответ на: комментарий от EXL

И 6 МБ для Qt5-приложения - курам на смех.

для простой консольной утилиты — это очень много

А вообще под винду нужно делать инсталлер.

не подходит, там поинт как раз в том, что никакой возни не надо: скопировал, да и всё.

Кстати, правильный и хороший антивирус должен понимать, что исполнительный файл запакован пакером, распаковать его и проверить.

к сожалению, не все юзают такие антивирусы

next_time ★★★★★ ()
Ответ на: комментарий от next_time

В свое время пользовался UPX-ом на винде, вроде ничего не верещало.

Но не помню, какой у меня тогда был антивирус и был ли.

yoghurt ★★★★★ ()
Ответ на: комментарий от next_time

потому что кроссплатформа и dependency hell на винде

Тему не раскрыл, попытайся ещё. Те же самые библиотеки, которые ты пытаешься запихнуть в статику, будут лежать рядом с бинарником и размер будет тот же.
Мы для винды так же делаем, с приложением постовляем Qtшные dll'ки. Можешь предположить, что по умолчанию Qt на винде не установлена.

UVV ★★★★★ ()
Ответ на: комментарий от next_time

Dependency hell - это в GNU/Linux, а на винде DLL Hell. Который успешно разрешается установщиком со включенными vcredist.

EXL ★★★★★ ()
Ответ на: комментарий от UVV

Я про DLL Hell с Microsoft'овским CRT. Правда, это если использовать MSVC вместо компилятора. Разумеется, от DLL Hell'а в сторонних библиотеках это не спасёт.

EXL ★★★★★ ()
Ответ на: комментарий от yoghurt

Оно не работает на винде, про которую тут говорит ТС. Точнее работает, но только если компилятор - gcc (MinGW).

EXL ★★★★★ ()
Ответ на: комментарий от DeadEye

Нет. Если ты решишь распространить своё небольшое Qt-приложение в какую-нибудь Haiku OS, то тебе тоже придётся столкнуться со статической линковкой.

Хотя даже так: если ты не хочешь трахаться с зоопарком дистрибутивов GNU/Linux, то ты сделаешь tar.gz-пакет со статически вкомпиленным Qt'ом.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от EXL

Хотя даже так: если ты не хочешь трахаться с зоопарком дистрибутивов GNU/Linux, то ты сделаешь tar.gz-пакет со статически вкомпиленным Qt'ом.

ШТА?

UVV ★★★★★ ()

-fdata-sections -ffunction-sections -flto -Wl,--gc-sections -Wl,--strip-all и еще можно -Os. Хардкормод: напиши свой qtconfig

CrazyAlex25 ★★ ()
Последнее исправление: CrazyAlex25 (всего исправлений: 1)
Ответ на: комментарий от UVV

Как ты будешь выпускать программку использующую Qt под большинство дистров онтопика? Собирать пакетики, ebild'ы и pkgbuild'ы? Мухаххах. Или для тебя мир ограничен deb-пакетом? Разумные разрабы кладут хер на все эти свистопляски с пакетными менеджерами. Донести пакет до пользователя — это задача мейнтейнера. См. пример Mozilla, которая откровенно ложит на все GNU/Linux меньшинства и даёт скачать с официального сайта лишь тарболл последней версии своего браузера, потрошить который уже задача мейнтейнеров.

EXL ★★★★★ ()

Одному мне кажется что изначально Qt в консольном приложении было излишним? Как из пушки по микробам…

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

А если ему действительно нужна кросс-платформенность, почему бы не заюзать? Ковыряться в Win32 API и читать их доки, которые объёмнее мана по сборке LFS — не каждому в радость.

EXL ★★★★★ ()
Ответ на: комментарий от next_time

Кроме upx'а нету решения. Если есть время — выбрасывай Qt, пиши на голом C++/WinAPI.

Кстати, ты бы хоть написал на каких платформах тебе нужна статическая линковка и какие либы линкуются статически. И каким компилятором пользуешься.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Плюсую. За все время работы на офтопе у меня еще не один антивирь на upx не ругался.

Так что пакер в руки и вперед!

Twissel ★★★★★ ()
Ответ на: комментарий от EXL

в выборе компилятора не ограничен, статическая линковка нужна, по факту, только под винду, WinApi юзать не хочу — зачем приучаться к плохому?

next_time ★★★★★ ()
Ответ на: комментарий от next_time

там используется либа для общения с серийным портом

И ради одного этого ты вкорячил статически весь Qt в консольное приложение? Ну ок…

init_6 ★★★★★ ()
Ответ на: комментарий от next_time

есть альтернативы?

Конечно же статически линковать с мамонтом-Qt в случае консольного приложения это именно то, что доктор прописал.

init_6 ★★★★★ ()

при статической компиляции. сейчас выходит 6Мб, что мягко говоря, дохрена.

что есть статическая компиляция не в в курсе,но наверно имелось ввиду статическая линковка библиотек.
Но разве в наше время 32гб флешек, 100мб интернетов и терабайтных облоков 6мб это много? Или ты на дискете носить собрался бинарь? Не те проблемы вы решаете, господин.

jo_b1ack ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.