LINUX.ORG.RU

Qt: скомпилировать программу


0

1

компилирую под линуксом - на выходе файл бинарный пихай на флешку и на аналогичных архитектурах везде работает

а компилирую под мастаем, выходит экзешник, но при попытке его запустить пишет что не найден mingw и еще до кучи. программа запускается только из самого qt как скомпилировать в один файлик чтобы на всех виндусах работало. компилировал и в debug и в release надо наверное в файл проекта для qmake что нибудь добавить.

под вендами надо либо пути до библиотек прописать, либо тащить эти либы в каталог с exe

MikeDM ★★★★★ ()

Все либы которые ты используешь лучше всего положить в директорию с исполняемым файлом. Тогда будет работать.

mopsene ★★★ ()

Смотри, что линкуется во время работы твоей программы, потом клади копии всего этого в каталог с бинарником. В винде, если программа не находит нужную библиотеку по указанному пути, она ищет её в каталоге бинарника.

o4kapuk ()

Для того чтобы под виндой можно было компилить полностью переносимый экзэшник надо пересобирать qt, модифицировать conf от gcc, и только потом собирать с ключём static. Попутно, если будешь пересобирать, поотключай ненужные свистелки при сборке.

Гугли по qt static build windows

visual ★★★ ()

статическая линковка тебя спасет.

papochka ()

Qt перекомпиль в статику, то же самое с либой mingw

unC0Rr ★★★★★ ()

Статика - УГ. Тем более у вэбкита с ней проблемы. Просто натрави на прогу Dependency Walker и положи рядом с exe'шником все по зависимостям. Кроме системных либ, конечно.

panter_dsd ★★★★ ()

если ты про венду - то просто клади DLLки нужные в каталог экзешника и все будет работать, сам так делаю - проблем нет

а в среде разработки очевидно почему работает, это не удивительно

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

надеюсь у тебя не серьезный многопользовательский проект, иначе тебя ждет epic fail и полная дискредитация твоей профпригодности...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от visual

Необходимо помнить, что статическая линковка обязывает распространять программу под лицензией GPL.

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

Нет. Читаем внимательно LGPL. Ликоваться с программой статически без открытия исходников нельзя. Если я не прав - поправьте.

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

Покупать не обязательно если не собираешься модифицировать библиотеку QT. Хотя можно и модифицировать только предоставить код изменений QT. Хоть мы и продали программу или DLL теперь конечный пользователь может ее перепродать. Исходный код нашей программы или DLL открывать не обязательно.

papochka ()
Ответ на: комментарий от trex6

> Ликоваться с программой статически без открытия исходников нельзя.

можно, если дать возможность слинковаться с другой библиотекой (т.е. предоставлять скомпиленные бинари до линковки)

unC0Rr ★★★★★ ()

Есть где то опция статической линковки в QT SDK. Но есть печаль от этого: бинарник становится прожорливым до дискового пространства, а пустая форма, умеющая только открываться, закрываться и сворачиваться занимает больше чем написанный на Delphi7.

Dikar ★★ ()

а) прописать каталог с Qt'шными dll'ками в PATH (будет работать только на 1 конкретной винде)

б) кинуть нужные Qt'шные библиотеки и пару либ от мингв в каталог с исполняемым файлом

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

Да мы про покупку чего-либо тут вообще не говорили.

trex6 ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

>сам так делаю - проблем нет

Траблы могут быть, если в системе больше одного рантайма. Манифест иногда прикладывать приходится.

slackwarrior ★★★★★ ()

С последней qtшной программой, которую я компилял для виндов приходилось таскать libgcc_s_dw2-1.dll mingwm10.dll QtCore4.dll QtGui4.dll

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