Jump to content

    
jenya7

Скомпилировать QT програму под Linux

Recommended Posts

Установил на  Windows QT. Написал в QT програмку. А как ее скомпилировать под Linux?

Поиски в гугле не радуют. Подозреваю что это невозможно.

Edited by jenya7

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 minute ago, novikovfb said:

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

ничего не понял. среда разработки и компилятор установлены иначе как я програму написал.

я так понимаю что если среда предоставляет кросплатформенную компиляцию - идешь в какой нибудь  buid->options, выбираешь под что компилировать, жмешь на кнопку и имеешь счастье.

Share this post


Link to post
Share on other sites
56 minutes ago, jenya7 said:

ничего не понял. среда разработки и компилятор установлены иначе как я програму написал.

я так понимаю что если среда предоставляет кросплатформенную компиляцию - идешь в какой нибудь  buid->options, выбираешь под что компилировать, жмешь на кнопку и имеешь счастье.

Поставите кроссплатформенный компилятор с библиотеками - будет кроссплатформенная компиляция (где его Вам взять - не знаю, GCC может компилировать под Линукс). А так - получите компиляцию под местную платформу и перенос исходников в среду разработки на другой платформе.

Share this post


Link to post
Share on other sites

Нельзя Qt-программу скомпилировать под все линуксы, Qt-библиотеки различаются даже между версиями однотипных линуксов, то есть программа собранная под centos7 с его родными библиотеками в centos6 работать не будет

Share this post


Link to post
Share on other sites
43 minutes ago, novikovfb said:

Поставите кроссплатформенный компилятор с библиотеками - будет кроссплатформенная компиляция (где его Вам взять - не знаю, GCC может компилировать под Линукс). А так - получите компиляцию под местную платформу и перенос исходников в среду разработки на другой платформе.

так они утверждают что он таки кроссплатформенный. в этом вся фишка.

4 minutes ago, gridinp said:

Нельзя Qt-программу скомпилировать под все линуксы, Qt-библиотеки различаются даже между версиями однотипных линуксов, то есть программа собранная под centos7 с его родными библиотеками в centos6 работать не будет

ну ладно не под все. под дебиан или юбунуту можно? это как бы маст.

Share this post


Link to post
Share on other sites

  Кроссплатформенность imho имеется ввиду, что можно собрать под разными платформами. А чтобы из одной платформы собирать под другую это вещь непростая, надо каждое сочетание отдельно смотреть. Сильно зависит от того, библиотеки какой версии gcc стоят в конкретном линуксе.  В общем лучше собирать в родном линуксе.
 

 

Edited by gridinp

Share this post


Link to post
Share on other sites

Вероятно компилить нужно в линуксе с комлектом сдк, где будет стоять программа и если она очень специфическая.
В Qt поддерживает cmake и qmake там есть всякие настройки для компиляции.

Share this post


Link to post
Share on other sites
В 12.02.2019 в 12:59, gridinp сказал:

Нельзя Qt-программу скомпилировать под все линуксы, Qt-библиотеки различаются даже между версиями однотипных линуксов, то есть программа собранная под centos7 с его родными библиотеками в centos6 работать не будет

Статическая компиляция или упаковка в какой-нибудь flatpak/snap/appimage и т.п. Тянется вся вереница библиотек конечно и размер конский. Зато на почти любом современном дистрибутиве запустится.

Share this post


Link to post
Share on other sites

Я под linux не компилил, но чтобы скомпилить под android нужно на официальном сайте скачать дистрибутив настроенный на android. Скорее всего просто качаете соответствующий дистрибутив со страницы Qt

 

Screenshot_2020-04-11-14-55-40-437_com.android.chrome.jpg

Share this post


Link to post
Share on other sites

А в чем проблема-то? Загружаемся в линукс, запускаем ту же цепочку из qmake/cmake/make, получаем собранную программку... Правда, в случае Qt это не так уж и тривиально, т.к. даже при разнице в минорных версиях библиотеки могут быть проблемы.

Но это - ваш выбор. Лично я даже длинной палкой эту гадость не трогаю! Никаких Qt или GTK, если не хочется проблем! Ну и, понятное дело, вообще никакого GUI! Только консольные приложения. На худой конец веб-морду можно сделать (все равно в любом линуксе стоит хотя бы nginx; ну или можно на непривилегированном порту работать при желании).

Edited by Eddy_Em

Share this post


Link to post
Share on other sites

Кстати, коллега как-то обратную операцию хотел провернуть: собрать под мастдайкой Qt-шное приложение. Пришлось долго и муторно ковыряться в коде и даже такие элементарные вещи, как работу с файлами, заворачивать в Qt'шные обертки!!!

Поэтому не надо верить в миф о том, что Qt - кроссплатформенная штука, которая сделает вам простой и однообразной разработку под linux, freebsd, mac, андроид и мастдайку!

Share this post


Link to post
Share on other sites

Странные предположения.

То есть для андроид можно сделать под виндоус, а под линукс нет ?

Что то с логикой нарушено.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.