IF
Igor FedyaevSept. 5, 2017, 11:03 a.m.

Сборка Qt / C++ проекта под Win из под Linux(centos)

Пытаюсь собрать проект (поставил mingw32 по гайду - но мпочему то ошибку выдает)
//Евгений я видел как вы делали релиз для mingw32 под win, но что то анологий я как то не пронаблюдал

https://www.easycoding.org/2014/04/26/sborka-staticheskix-prilozhenij-na-qt-dlya-windows-iz-linux.html

Ошибка вида:

Программа /home/admin/QtProject/build-001_exe-MinGW32-Release/release/001_exe отсутствует.


Моё понимание-что кросс платформу надо собирать из под компилятора MinGWN(N-разрядность системы)

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

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

Подскажите пожалуйста Господа ГУРУ Qt что не так ?
как собратm(static) под:
win?
linux?
macOC?

Заранее сапибо.
We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

11
Evgenii Legotckoi
  • Sept. 5, 2017, 11:20 a.m.

ммм.. вот никогда не понимал, зачем делать сборку под windows из-под linux...
Зачем самому себе усложнять жизнь, всё равно же придётся тестировать на windows потом, так в чём же проблема собрать под целевой платформой. Тем более, что такие сборочные пакеты всегда запаздывают от современного релиза.
Я ещё понимаю, когда под Андроид или под Raspberry Pi делают сборку не на целевой машине. Это логично... Но Win, MacOs, Linux на одном Linux...


Что вообще присутствует в этой папке /home/admin/QtProject/build-001_exe-MinGW32-Release/release/ ?
Сборка естественно будет различная. Разные версии сборки разруливаются в QMAKE файле, типо if unix или что-то такое, нужно смотреть, не помню.
    IF
    • Sept. 6, 2017, 2:08 a.m.

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

    Т.е. мне нужны Win Linux MacOS и под каждую систему под разрядность x32 x64 x86 = и того 9 сборок под системы и мне 9 виртуалок ставить под тесты ?)))

    Я поищу - если найду - выложе отдельной статьёй.

    Если как0то поможите буду только рад.

      Evgenii Legotckoi
      • Sept. 6, 2017, 2:27 a.m.

      Вообще, обычно так и делают в большинстве случаев. Поскольку виртуалка слишком идеализированный вариант, и к слову не всё можно проверить. А вот по поводу Mac OS - это очень интересный вопрос. Как вообще можно вести разработку под систему, вообще не имея хотя бы одного живого девайса? Если у Вас на работе такая задача стоит, то ваши работодатели - сказочники в розовых очках.

        Evgenii Legotckoi
        • Sept. 6, 2017, 2:29 a.m.
        • (edited)

        В любом случае даже с разрядностью стоит учитывать то, что не все библиотеки одинаково хорошо работают с определённой разрядностью системы, а некоторые так вообще под 64 бита не работают. Тестировать в любом случае нужно на всех системах. Иначе - это фикция, а не работа.

          Evgenii Legotckoi
          • Sept. 6, 2017, 2:33 a.m.
          • (edited)
          x32 x64 x86 = и того 9 сборок под системы
          а чего это вы путаете архитектуры? x86 и x32 - это одно и то же. Есть x86 архитектура, а есть x86_64, так что здесь не 9, а 6 виртуалок.

            IF
            • Sept. 6, 2017, 6:56 a.m.

            моя ошибка, чёт задумался не о том.

            я подсобрал статическое приложение под win с помошью mingw32, всё пытаюсь прикрутить mingw_x86_64 но как то очень туго идет,подкрутил из репозиториев centOs 7

            получил ошибки:
            :-1: error: cannot find -lQt5Widgets
            :-1: error: cannot find -lQt5Gui
            :-1: error: cannot find -ljpeg
            :-1: error: cannot find -lpng
            :-1: error: cannot find -lharfbuzz
            :-1: error: cannot find -lglib-2.0
            :-1: error: cannot find -lintl
            :-1: error: cannot find -lQt5Core
            :-1: error: cannot find -lpcre16
            :-1: error: cannot find -lEGL
            :-1: error: cannot find -lGLESv2
            :-1: error: cannot find -lpthread
            :-1: error: collect2: error: ld returned 1 exit status

            Подскажите в чем проблеа(я думаю что не находит lib Qt библиотек)


              IF
              • Sept. 6, 2017, 6:57 a.m.

              Поставил x86_64-w64-mingw32  с официального сайта Qt - тот же эффект

                alex_lip
                • Sept. 6, 2017, 7:01 a.m.

                А правда - как откомпилять исходники под IOS ? И как на какой-нибудь ipad залить для проверки?

                  Evgenii Legotckoi
                  • Sept. 6, 2017, 7:12 a.m.
                  • (edited)

                  Вообще... проблема в том, что mingw на 64 бита есть, но официально он в Qt не поддерживается, а поэтому все, кто занимается разработкой серьёзно, дружно кладут болт на него и компилируют с помощью MSVC, который идёт в составе Microsoft Visual Studio. А это значит, что нужна машина с Windows, с Microsoft Visual 2015, например, и Qt Creator с соответствующей сборкой Qt.

                  Я не знаю, с какого официального сайта Qt ставилась MinGW на 64 бита, но на странице загрузок Qt нет сборки Qt для MinGW 64 бита, поэтому я считаю, что и официальной поддержки его нет.


                  Что касается MacOS. А вот поэтому я и не занимаюсь разработкой под iOS или Mac OS, у меня их нет попросту и нет нужды на данный момент в них. Самый правильный подход в этом случае - это покупка Mac Mini, который стоит где-то от 35 т.р до 55т.р. И разработка с живой железкой. Поэтому, если встанет реальная задача разработки под эту платформу, я просто раскошелюсь на эту железяку.
                  Я вообще не знаю ни одного разработчика, которые разрабатывают под Mac не имея Mac. Есть, конечно, вариант с установкой виртуалки на VmVare, слышал я про такое, но это тоже из области создания проблем самому себе.
                    IF
                    • Sept. 6, 2017, 7:39 a.m.

                    Т.е. для реализации на платформы:
                    -linux
                    -win
                    Лучше всего использовать релиз под компилятором MSVC и под win

                    тогда вопрос еще один такой

                    Если я собираю приложение для использовани на другом компе то мне нужно:
                    собрать static верисю(сделал для win из под linux)-но почему то под linux из под linux не смог подсобрать.....Компилятор GCC(подскажите как?)
                    или собрать так хитро и таскать все бибилотеки с собой?(подскажите как?)

                      Evgenii Legotckoi
                      • Sept. 6, 2017, 7:58 a.m.
                      под Win собирать на MSVC под win.
                      под Linux собирать на Linux.

                      Вообще, если использовать мажорные версии Qt, которые являются предустановленными в системе linux, то вообще не нужно использовать статическую сборку. Достаточно перекинуть один только бинарник. В системе и так будет всё, что нужно. То есть библиотеки также таскать не требуется. И не нужно никакой статической сборки.

                        Comments

                        Only authorized users can post comments.
                        Please, Log in or Sign up
                        Дмитрий

                        C ++ - Test 004. Pointers, Arrays and Loops

                        • Result:60points,
                        • Rating points-1
                        Дмитрий

                        C++ - Тест 003. Условия и циклы

                        • Result:92points,
                        • Rating points8
                        d
                        • dsfs
                        • April 26, 2024, 4:56 p.m.

                        C ++ - Test 004. Pointers, Arrays and Loops

                        • Result:80points,
                        • Rating points4
                        Last comments
                        k
                        kmssrFeb. 9, 2024, 7:43 a.m.
                        Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                        Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                        EVA
                        EVADec. 25, 2023, 11:30 p.m.
                        Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                        J
                        JonnyJoDec. 25, 2023, 9:38 p.m.
                        Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                        G
                        GvozdikDec. 19, 2023, 10:01 a.m.
                        Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                        Now discuss on the forum
                        G
                        George13May 7, 2024, 12:27 p.m.
                        добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
                        BlinCT
                        BlinCTMay 5, 2024, 5:46 p.m.
                        Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                        PS
                        Peter SonMay 4, 2024, 5:57 a.m.
                        Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
                        Evgenii Legotckoi
                        Evgenii LegotckoiMay 3, 2024, 2:07 a.m.
                        Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
                        IscanderChe
                        IscanderCheApril 30, 2024, 4:22 p.m.
                        Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…

                        Follow us in social networks