На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> Работа с QT начинающего
    Здравствуйте!
    Начал изучать QT (Windows 10, msys2, mingw-w64-x86_64). Возникли следующие вопросы:
    1. При запуске qtcreator появляется окно (скриншот прикрепил). С помощью msys2 для Clang ничего не ставил. Как избавиться от этого окна при запуске qtcreator?
    2. При попытке скомпилировать проект из учебного курса (проект прикрепил) появляется ошибка:
    ExpandedWrap disabled
      :-1: ошибка: [Makefile.Debug:108: debug/QtWidgets_en.qm] Error 2
      mingw32-make[1]: *** [Makefile.Debug:108: debug/QtWidgets_en.qm] Error 2
      mingw32-make[1]: Leaving directory 'N:/MyProgramming/qtBook/build-QtWidgets-Desktop_Qt_6_6_2_shared_MinGW_w64_MINGW64_MSYS2-Debug'
      mingw32-make: *** [Makefile:45: debug] Error 2
      23:01:49: Процесс «N:\msys64\mingw64\bin\mingw32-make.exe» завершился с кодом 2.
      Ошибка при сборке/развёртывании проекта QtWidgets (комплект: Desktop Qt 6.6.2 (shared) MinGW-w64 MINGW64 (MSYS2))
      Комплект Desktop Qt 6.6.2 (shared) MinGW-w64 MINGW64 (MSYS2) имеет недостатки в конфигурации, которые могут быть источниками данной проблемы.
      Во время выполнения этапа «Сборка»

    Я установил mingw-w64-x86_64-qt6-multimedia, но ошибка все равно появляется. Подскажите, пожалуйста, как определить, чего не хватает проекту и как правильно настроить проект?
    Проект находится на локальном диске N: N:\MyProgramming\qtBook\QtWidgets\
    Прикреплённая картинка
    Прикреплённая картинка

    Прикреплённый файлПрикреплённый файлQtWidgets.zip (15,43 Кбайт, скачиваний: 31)
      На сколько я помню, могу ошибаться, ClangFormat - это плагин QtCreator'а. Он может включаться/отключаться. Попробуй его отключить.
        Цитата Starostin @
        Проект находится на локальном диске N: N:\MyProgramming\qtBook\QtWidgets\

        Тут вот какой момент - если ты используешь QtCreator, установленный в среде MSYS2 (а не отдельно), то попробуй пользовать файловую систему, которую эмулирует MSYS2. Т.е. создай каталог ~/projects и в нем размещай свои проекты. Не знаю на сколько это решит твои проблемы, но у меня такое вот размещение не вызывало проблем со сборкой. Хотя сейчас я QtCreator использую, установленный просто инсталлятором, т.е. не средствами MSYS2.
          Отключить плагин не получилось, в настройках у меня нет пунктов, указанных в https://doc.qt.io/qtcreator/creator-beautifier.html и https://programmersought.com/article/4744361708/. Пришлось установить clang.
          А по поводу компиляциии примера можете помочь?
            Цитата Starostin @
            А по поводу компиляциии примера можете помочь?

            У меня получилось нормально откомпилировать. Но предварительно пришлось почистить проект от "мусора" - лишние файлы автосохранений. И самое главное - перед первым открытием проекта в QtCreator нужно удалить "QtWidgets.pro.user". Это позволит QtCreator'у настроить проект под настроенные в нем комплекты. Почищенный архив прикреплю.

            Ну и на будущее - настоятельно не рекомендую использовать редактор UI. Лучше всего интерфейс делать динамически в коде, даже если интерфейс динамически изменяться не будет. Простой пример - задаем размеры диалогового окна в UI, а пользователь берет и меняет масштабирование всего интерфейса GUI (шрифты как минимум) - многие элементы могут и начнут обрезаться. Если динамически в коде собираем интерфейс, а перед отображением окна делаем resize(0,0) - в этом случае Qt сам подберет минимальный размер окна, но так, чтобы все элементы размещались полностью.
            Прикреплённый файлПрикреплённый файлQtWidgets.7z (3,04 Кбайт, скачиваний: 20)
              Спасибо большое за помощь! При компиляции присланного проекта возникла ошибка:
              ExpandedWrap disabled
                process_begin: CreateProcess(NULL, N:\msys64\mingw64\bin\lrelease.exe ..\QtWidgets\QtWidgets_en.ts -qm debug\QtWidgets_en.qm, ...) failed.
                make (e=2): Не удается найти указанный файл.
                mingw32-make[1]: *** [Makefile.Debug:108: debug/QtWidgets_en.qm] Error 2
                mingw32-make: *** [Makefile:45: debug] Error 2
                14:04:02: Процесс «N:\msys64\mingw64\bin\mingw32-make.exe» завершился с кодом 2.
                Ошибка при сборке/развёртывании проекта QtWidgets (комплект: Desktop Qt 6.6.2 (shared) MinGW-w64 MINGW64 (MSYS2))
                Комплект Desktop Qt 6.6.2 (shared) MinGW-w64 MINGW64 (MSYS2) имеет недостатки в конфигурации, которые могут быть источниками данной проблемы.
                Во время выполнения этапа «Сборка»
              Как я понял, ошибка связана с использованием нескольких языков в приложении, но как исправить ошибку - не знаю. Подскажите, пожалуйста, как исправить ошибку?
                Ну перво-наперво, я собирал, используя Qt 5.12. Для 6-й версии не пробовал - у меня тулчейны для нее не установлены, и я пока на 6-ю версию не спешу переходить.
                  Понятно. Буду разбираться.
                    Я установил с помощью msys QT и Clang (:
                    ExpandedWrap disabled
                      pacman -S mingw-w64-x86_64-clang
                      pacman -S mingw-w64-clang-x86_64-toolchain
                      pacman -S mingw-w64-x86_64-clang-tools-extra
                      pacman -S mingw-w64-x86_64-gdb
                      pacman -S mingw-w64-x86_64-cmake
                      pacman -S mingw-w64-x86_64-make
                    Была создана директория build-qtStudyClang-Desktop_Qt_6_6_2_shared_MinGW_w64_MINGW64_MSYS2-Debug. В названии директории нет clang.
                    Правильно я понимаю, что clang имеет те же ключи компиляции, что gcc, только для компиляции нужно запускать clang вместо gcc/g++.
                      Цитата Starostin @
                      Правильно я понимаю, что clang имеет те же ключи компиляции, что gcc, только для компиляции нужно запускать clang вместо gcc/g++.

                      ага

                      Добавлено
                      Цитата Starostin @
                      установил с помощью msys QT и Clang (:

                      Только установки Qt тут как-то не наблюдается.
                        Да я установку QT не указывал:
                        ExpandedWrap disabled
                          pacman -S mingw-w64-x86_64-qt6
                          pacman -S mingw-w64-x86_64-qt-creator
                          mingw-w64-x86_64-qt6-base-debug
                          Решил перейти на clang. Командами
                          ExpandedWrap disabled
                            pacman -S mingw-w64-clang-x86_64-qt-creator
                            pacman -S mingw-w64-clang-x86_64-cmake
                          установил qtcreator и cmake. Попытался создать в qtcreator проект с системой сборки cmake, в выборе комплектов стоит желтый треугольник с восклицательным знаком (скриншот прикрепил).
                          Если выбрать вместо cmake систему сборки qmake, то получаю сообщение "Cannot run compiler g++", поскольку gcc не устанавливал.
                          У меня следующие вопросы:
                          1. Как в qtcreator правильно настроить конфигурацию проекта (комплекты инструментов)для систем сборки cmake и qmake?
                          2. Можно ли настроить проект qmake, чтобы он компилировался с помощью clang?
                          3. Какую систему сборки лучше использовать?
                          Прикреплённая картинка
                          Прикреплённая картинка
                            Могу ошибаться, но Clang является фронтэндом по отношению к GCC в данном случае. Clang представляет собой компилятор, который работает вместе с LLVM (Low Level Virtual Machine) и предоставляет большую часть инструментария для замены стека GCC. Одной из основных целей Clang является предоставление архитектуры на основе библиотек, чтобы компилятор мог взаимодействовать с другими инструментами, такими как интегрированные среды разработки (IDE). Таким образом, думаю, следует еще поставить gcc. Да, есть системы типа FreeBSD и macOS, где полностью выпилено "наследие" от GCC, добавлены стандартные заголовки и своя libc++. Но это не про MSYS2.
                              Сделал pacman -S mingw-w64-x86_64-toolchain, но ничего не изменилось: в конфигурации cmake незадан верный инструментарий комплекта. Как его задавать правильно?
                                А из этого все поставлено?

                                mingw-w64-x86_64-gcc
                                mingw-w64-x86_64-gdb
                                mingw-w64-x86_64-cmake
                                mingw-w64-x86_64-extra-cmake-modules
                                  Все установлено. По ссылке https://disk.yandex.ru/i/zs9l9VTPxncLnA из-за большого размера разместил скриншот проекта. Каталог сборки выделен красным, но он существует, его архив я прикрепил. Наверное красный из-за неправильных настроек файлов в нем. При наведении на желтый треугольник появляется сообщение, указанное в скриншоте в сообщении 12.
                                  При загрузке проекта щелчком по CMakeLists.txt и нажатии кнопки Configure Project появляется сообщение:
                                  ExpandedWrap disabled
                                    :-1: ошибка: Команда «N:\msys64\clang64\bin\cmake.exe -S N:/MyProgramming/qtProcFilesClang -B N:/MyProgramming/qtProcFilesClang/build/Desktop_Qt_6_7_0_shared_MinGW_w64_CLANG64_MSYS2-Debug» завершилась с кодом 1.
                                    :-1: ошибка: CMake project configuration failed. No CMake configuration for build type "Debug" found.
                                  КОгда я делаю проект с помощью MinGW и системой сборки Cmake проект нормально компилируется. Могу разместить на яндекс-диске каталог msys64, которым я пользуюсь (размер 1 Гб, инсталировать ничего не нужно, просто развернуть на диск) и архив проекта. Помогите, пожалуйста, разобраться.
                                  Прикреплённый файлПрикреплённый файлDesktop_Qt_6_7_0_shared_MinGW_w64_CLANG64_MSYS2_Debug.zip (33,39 Кбайт, скачиваний: 19)
                                    Прикрепи сам проект в архиве. Посмотрю, может чего увижу.
                                      Спасибо. Проект прикрепил.
                                      Прикреплённый файлПрикреплённый файлqtProcFilesClang.zip (2,65 Кбайт, скачиваний: 18)
                                        Я у себя в директории N:\msys64\clang64\bin\ не нашел clang++. Видимо, поэтому не получается. Проверил на Debian - все нормально, файлы clang и clang++ есть, все работает. Проверил с помощью pacman -Ss clang - получил следующее:
                                        ExpandedWrap disabled
                                          msys/clang 11.0.0-5 [installed]
                                              C language family frontend for LLVM
                                          msys/mingw-w64-cross-clang 11.0.0-4 (mingw-w64-cross-clang-toolchain) [installed]
                                              Cross Clang for the MinGW-w64
                                          msys/mingw-w64-cross-clang-crt 9.0.0.6158.1c773877-2 (mingw-w64-cross-clang-toolchain) [installed]
                                              MinGW-w64 CRT for cross-compiler
                                          msys/mingw-w64-cross-clang-headers 9.0.0.6158.1c773877-2 (mingw-w64-cross-clang-toolchain) [installed]
                                              MinGW-w64 headers for cross-compiler
                                          msys/mingw-w64-cross-compiler-rt 11.0.0-6 [installed]
                                              Compiler runtime libraries for cross clang
                                        Есть следующие файлы:
                                        ExpandedWrap disabled
                                          N:\msys64\clang64\bin\libclang.dll
                                          N:\msys64\clang64\bin\libclang-cpp.dll
                                        Что нужно сделать, чтобы файлы clang++ и clang появились?
                                        Сообщение отредактировано: Starostin -
                                          Цитата Starostin @
                                          Что нужно сделать, чтобы файлы clang++ и clang появились?

                                          Нужно поставить собственно clang (выбери нужный тебе комплект/ы):

                                          ExpandedWrap disabled
                                            pacman -S mingw32/mingw-w64-i686-clang
                                            pacman -S mingw32/mingw-w64-i686-clang-analyzer
                                            pacman -S mingw32/mingw-w64-i686-clang-libs
                                            pacman -S mingw32/mingw-w64-i686-clang-tools-extra
                                            pacman -S mingw32/mingw-w64-i686-compiler-rt
                                             
                                            pacman -S mingw64/mingw-w64-x86_64-clang
                                            pacman -S mingw64/mingw-w64-x86_64-clang-analyzer
                                            pacman -S mingw64/mingw-w64-x86_64-clang-libs
                                            pacman -S mingw64/mingw-w64-x86_64-clang-tools-extra
                                            pacman -S mingw64/mingw-w64-x86_64-compiler-rt
                                             
                                            pacman -S ucrt64/mingw-w64-ucrt-x86_64-clang
                                            pacman -S ucrt64/mingw-w64-ucrt-x86_64-clang-analyzer
                                            pacman -S ucrt64/mingw-w64-ucrt-x86_64-clang-libs
                                            pacman -S ucrt64/mingw-w64-ucrt-x86_64-clang-tools-extra
                                            pacman -S ucrt64/mingw-w64-ucrt-x86_64-compiler-rt
                                             
                                            pacman -S clang32/mingw-w64-clang-i686-clang
                                            pacman -S clang32/mingw-w64-clang-i686-clang-analyzer
                                            pacman -S clang32/mingw-w64-clang-i686-clang-libs
                                            pacman -S clang32/mingw-w64-clang-i686-clang-tools-extra
                                            pacman -S clang32/mingw-w64-clang-i686-compiler-rt
                                             
                                            pacman -S clang64/mingw-w64-clang-x86_64-clang
                                            pacman -S clang64/mingw-w64-clang-x86_64-clang-analyzer
                                            pacman -S clang64/mingw-w64-clang-x86_64-clang-libs
                                            pacman -S clang64/mingw-w64-clang-x86_64-clang-tools-extra
                                            pacman -S clang64/mingw-w64-clang-x86_64-compiler-rt
                                            Да, и сразу хочу предупредить ... увы и MSYS2 не идеален :whistle:

                                            Что касается сборки статически-линкованных проектов с Qt5/6, можно смело получить нечто подобное:

                                            ExpandedWrap disabled
                                              ...
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc6b): undefined reference to `gr_seg_destroy'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc85): undefined reference to `gr_seg_first_slot'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc8d): undefined reference to `gr_slot_origin_X'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xca4): undefined reference to `gr_seg_advance_X'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xcdb): undefined reference to `gr_featureval_destroy'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xce5): undefined reference to `gr_seg_destroy'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libharfbuzz.a(hb-uniscribe.cc.obj):(.text+0x723): undefined reference to `__imp_UuidCreate'
                                              E:/Tools/MSys64/ucrt64/bin/ld: E:/Tools/MSys64/ucrt64/lib\libfreetype.a(src_bzip2_ftbzip2.c.obj):(.text+0x6c): undefined reference to `BZ2_bzDecompressEnd'
                                              ...

                                            Лично у меня зарегано 8 комплектов для статической линковки, собирается не все и не все хорошо:
                                            1. Desk_5_15_13_clang32_static - собралось
                                            2. Desk_5_15_13_clang64_static - собралось, с предупреждением "Symbolic links not supported: disabling -L"
                                            3. Desk_5_15_13_mingw32_static - собралось, но с кучей предупреждений а-ля "(moc_qfilesystemwatcher_win_p.o): duplicate section"
                                            4. Desk_5_15_13_mingw64_static - собралось, но с кучей предупреждений а-ля "(moc_qfilesystemwatcher_win_p.o): duplicate section"
                                            5. Desk_5_15_13_ucrt64_static - не собралось, куча ошибок а-ля undefined reference to `__imp___p___argc'
                                            6. Desk_6_7_0_clang64_static - собралось
                                            7. Desk_6_7_0_mingw64_static - не собралось, куча ошибок а-ля "(.text+0x612): undefined reference to `BZ2_bzDecompressInit'"
                                            8. Desk_6_7_0_ucrt64_static - не собралось, куча ошибок а-ля "(.text+0x612): undefined reference to `BZ2_bzDecompressInit'"

                                            Но и не мудрено! Изначально комплекты со статической линковкой не хотели ставится т.к. ABI у qmake были внезапно :blink: x86-windows-unknown-pe-*, когда у компиляторов было все как положено x86-windows-msys-pe-*, и пришлось делать дубли компиляторов и насильно менять им ABI, только тогда комплекты зарегались.

                                            Одно меня радует :lol: под моей любимой Манжарой в проекте MXE на сей раз полностью собрались все 8 комплектов Qt5 и Qt6! Вообще без единой ошибки. Но и тут ... LLVM, а соответственно, и Clang не собрались. Да и ладно! Такие вот дела.
                                              У меня такая-же проблема, как и у автора темы. Воспользовался Вашими советами по установке clang. Программы clang.exe и clang++.exe появились в директории mingw64. Но в комплекте для clang указана директория N:\msys64\clang64\clang++.exe. При этом возможности сменить директорию с программой нет (скриншот по ссылке https://disk.yandex.ru/i/oOWHVGNMbQPeAw). Как изменить в настройках комплекта путь? Я также не понял, как можно создать свой комплект со своими настройками (выбрать нужный набор компиляторов для С и С++, нужный QT в случае установки QT5 и QT6 и др.). Попытался сделать, компилятор для C выбрал, а компилятор дляя C++ выбрать не получилось, как ни старался.
                                                Цитата tumanovalex @
                                                N:\msys64\clang64\clang++.exe

                                                Должно быть N:\msys64\clang64\bin\clang++.exe

                                                Цитата tumanovalex @
                                                У меня такая-же проблема, как и у автора темы. Воспользовался Вашими советами по установке clang. Программы clang.exe и clang++.exe появились в директории mingw64. Но в комплекте для clang указана директория N:\msys64\clang64\clang++.exe. При этом возможности сменить директорию с программой нет (скриншот по ссылке https://disk.yandex.ru/i/oOWHVGNMbQPeAw). Как изменить в настройках комплекта путь? Я также не понял, как можно создать свой комплект со своими настройками (выбрать нужный набор компиляторов для С и С++, нужный QT в случае установки QT5 и QT6 и др.). Попытался сделать, компилятор для C выбрал, а компилятор дляя C++ выбрать не получилось, как ни старался.

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

                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                Прикреплённая картинка
                                                  Спасибо огромное за скриншоты! Правильно ли я понял, что в предустановленных комплектах поменять пути к компилятору ( N:\msys64\clang64\bin\clang++.exe на N:\msys64\mingw64\bin\clang++.exe) не удастся и нужно создать свой комплект?
                                                    Цитата tumanovalex @
                                                    Спасибо огромное за скриншоты! Правильно ли я понял, что в предустановленных комплектах поменять пути к компилятору ( N:\msys64\clang64\bin\clang++.exe на N:\msys64\mingw64\bin\clang++.exe) не удастся и нужно создать свой комплект?

                                                    В комплектах пути нельзя менять, но можно менять компиляторы комплекта(ов). Если тот компилятор определился неверно, можно сделать свой - и им заменить неправильный в комплекте.
                                                      Судя по скриншоту № 3 Вам удалось установить clang в директорию msys64/clang. Когда я устанавливаю clang командой
                                                      ExpandedWrap disabled
                                                        pacman -S mingw-w64-x86_64-clang
                                                      то исполняемые файлы clang устанавливаются в директорию mingw64/bin. Как Вам это удалось?
                                                      Сообщение отредактировано: tumanovalex -
                                                        Цитата tumanovalex @
                                                        Судя по скриншоту № 3 Вам удалось установить clang в директорию msys64/clang. Когда я устанавливаю clang командой
                                                        pacman -S mingw-w64-x86_64-clang
                                                        то исполняемые файлы clang устанавливаются в директорию mingw64/bin. Как Вам это удалось?

                                                        Сперва поиск:
                                                        Прикреплённая картинка
                                                        Прикреплённая картинка


                                                        А потом установка, но с учетом типа (ну или как его назвать):
                                                        pacman -S clang64/mingw-w64-clang-x86_64-clang
                                                          Спасибо большое, все установилось в clang64
                                                            Я попробовал сделать статическую релизную сборку Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt5_sta-Release для простого проекта. Прикрепил проект, исполняемый файл и результаты работы dumpbin. В результатах dumpbin указано, что программа зависит только от Qt6Widgets.dll, Qt6Core.dll, libc++.dll и библиотек Windows. Однако чтобы при запуске программы не появлялось сообщение об отсутствии нужных dll, кроме этих dll требуется рядом с программой разместить еще кучу других dll (libb2-1.dll, libharfbuzz-0.dll, libfreetype-6.dll, libdouble-conversion.dll и других), хотя при запуске программы появляется только пустое белое окно. Подскажите, пожалуйста, следующее:
                                                            1. Как определить, какие dll из директории clang64 нужны для автономного запуска программы на другом ПК.
                                                            2. Можно ли уменьшить число требуемых для запуска dll.
                                                            3. Можно ли сделать с помощью QTCreator программу, которая бы не требовала dll и ее можно было бы переносить одним исполняемым файлом без всяких dll на другой ПК.
                                                            Прикреплённый файлПрикреплённый файлqtProcFilesClang.zip (43,13 Кбайт, скачиваний: 19)
                                                              Привет!
                                                              Отвечу в обратном порядке :)

                                                              Цитата tumanovalex @
                                                              3. Можно ли сделать с помощью QTCreator программу, которая бы не требовала dll и ее можно было бы переносить одним исполняемым файлом без всяких dll на другой ПК.

                                                              Да, это называется статическая сборка (линковка) - все необходимое включается в исполняемый файл. Увы и ах, но с использованием Qt5/6 нужно ожидать размер исполняемого файла от 14Mb (примерно) и выше.
                                                              Как говорится, здравствуй жЫр :lol:

                                                              Цитата tumanovalex @
                                                              2. Можно ли уменьшить число требуемых для запуска dll.

                                                              Нельзя. Нужно столько, сколько нужно. А вот включать "лишние" не обязательно. К примеру, если в программе ты не используешь сетевые функции, то тебе не обязательно копировать в готовый проект Qt5Network.dll или Qt6Network.dll.

                                                              Цитата tumanovalex @
                                                              1. Как определить, какие dll из директории clang64 нужны для автономного запуска программы на другом ПК.

                                                              Это отдельная, непростая тема. Желательно выучить наизусть мануал по ней. Это все касается деплоя проектов с динамической линковкой. Давно я таким не занимался, но отчетливо помню, что утилита windeployqt в свое время не все dll-ки подтягивала. А именно подтягивала dll-ки от Qt, а от самого компилятора С++ с его базовыми либами пропускала (типа libwinpthread-1.dll & etc.). Я точно помню, что искал прогу, которая показывала зависимости .exe и .dll от других .dll, и ею пошагово искал что от чего зависит. Но это было давно, лет 5-7 назад, в эпоху Qt 5.8 примерно. Может сейчас что-то стало лучше, не знаю - надо вопрос прокачать.

                                                              А вообще, в наш век гомоглобальной экзистенции модуляции синтеза и всяческих там санкций и заморозок российских активов на западе (читай - воровства космических масштабов) - LGPL v.3 от Qt нарушать не только можно, но и нужно!!! Используй статическую линковку для своих коммерческих проектов, и ничего не бойся ... А лучше гордись этим - это твои ответные санкции гомосекам запада!!!

                                                              user posted image
                                                                Спасибо за подробные ответы. Попробую сам найти программу для определения нужных dll. При выборе комплекта со статической линковкой при запуске программы опять требуются многочисленные dll (скриншоты прикрепил). Как правильно настроить qtcreator, чтобы создавался исполняемый файл без dll?
                                                                Прикреплённая картинка
                                                                Прикреплённая картинка

                                                                Прикреплённая картинка
                                                                Прикреплённая картинка


                                                                Добавлено
                                                                Задал вопрос о программе для определния нужных dll, получил ссылки (https://www.cyberforum.ru/qt/thread3164758.html#post17286537)
                                                                  Может быть нужно что-то подравить в CMakeLists.txt, чтобы была статическая компановка?
                                                                    Цитата tumanovalex @
                                                                    Может быть нужно что-то подравить в CMakeLists.txt, чтобы была статическая компановка?

                                                                    Думаю, что можно. Но это будет очень сложно. Проще вариант - использовать уже готовые к этому сборки (комплекты). Проще - это не в 1-2 раза, а в 1-2 порядка.
                                                                      Как видно на скриншоте, я выбрал при сборке выпуска именно комплект static. Вот только при запуске программы все равно требуется много dll. Что я делаю неправильно?
                                                                        Ну так по одному скрину трудно сказать что не так. Покажи настройки в этом комплекте.
                                                                          По адресу https://disk.yandex.ru/d/9AuscdCoY9hdQg разместил видео, в котором постарался показать все настройки. Какая еще нужна информация для того, чтобы все-таки разобраться, почему не происходит статической линковки? На всязки случай размещаю сообщения, которые появляются при сборке
                                                                          ExpandedWrap disabled
                                                                            [cmake] Работа N:\msys64\clang64\bin\cmake.exe -S N:/MyProgramming/qtClangCmake -B N:/MyProgramming/qtClangCmake/build/Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Debug "-DCMAKE_GENERATOR:STRING=Ninja" "-DCMAKE_BUILD_TYPE:STRING=Debug" "-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=N:\MyProgramming\qtClangCmake\build\Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Debug/.qtc/package-manager/auto-setup.cmake" "-DQT_QMAKE_EXECUTABLE:FILEPATH=N:/msys64/clang64/qt6-static/bin/qmake.exe" "-DCMAKE_PREFIX_PATH:PATH=" "-DCMAKE_C_COMPILER:FILEPATH=N:/msys64/clang64/bin/clang.exe" "-DCMAKE_CXX_COMPILER:FILEPATH=N:/msys64/clang64/bin/clang++.exe" на N:\MyProgramming\qtClangCmake\build\Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Debug.
                                                                            [cmake] -- The CXX compiler identification is Clang 18.1.4
                                                                            [cmake] -- Detecting CXX compiler ABI info
                                                                            [cmake] -- Detecting CXX compiler ABI info - done
                                                                            [cmake] -- Check for working CXX compiler: N:/msys64/clang64/bin/clang++.exe - skipped
                                                                            [cmake] -- Detecting CXX compile features
                                                                            [cmake] -- Detecting CXX compile features - done
                                                                            [cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
                                                                            [cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
                                                                            [cmake] -- Check if compiler accepts -pthread
                                                                            [cmake] -- Check if compiler accepts -pthread - yes
                                                                            [cmake] -- Found Threads: TRUE
                                                                            [cmake] -- Performing Test HAVE_STDATOMIC
                                                                            [cmake] -- Performing Test HAVE_STDATOMIC - Success
                                                                            [cmake] -- Found WrapAtomic: TRUE
                                                                            [cmake] -- Found WrapVulkanHeaders: N:/msys64/clang64/include
                                                                            [cmake] -- Configuring done (0.0s)
                                                                            [cmake] -- Generating done (0.0s)
                                                                            [cmake] -- Build files have been written to: N:/MyProgramming/qtClangCmake/build/Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Debug
                                                                            [cmake]
                                                                            [cmake] Прошло времени: 00:07.
                                                                            [cmake] Работа N:\msys64\clang64\bin\cmake.exe -S N:/MyProgramming/qtClangCmake -B N:/MyProgramming/qtClangCmake/build/Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Release "-DCMAKE_GENERATOR:STRING=Ninja" "-DCMAKE_BUILD_TYPE:STRING=Release" "-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=N:\MyProgramming\qtClangCmake\build\Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Release/.qtc/package-manager/auto-setup.cmake" "-DQT_QMAKE_EXECUTABLE:FILEPATH=N:/msys64/clang64/qt6-static/bin/qmake.exe" "-DCMAKE_PREFIX_PATH:PATH=" "-DCMAKE_C_COMPILER:FILEPATH=N:/msys64/clang64/bin/clang.exe" "-DCMAKE_CXX_COMPILER:FILEPATH=N:/msys64/clang64/bin/clang++.exe" на N:\MyProgramming\qtClangCmake\build\Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Release.
                                                                            [cmake] -- The CXX compiler identification is Clang 18.1.4
                                                                            [cmake] -- Detecting CXX compiler ABI info
                                                                            [cmake] -- Detecting CXX compiler ABI info - done
                                                                            [cmake] -- Check for working CXX compiler: N:/msys64/clang64/bin/clang++.exe - skipped
                                                                            [cmake] -- Detecting CXX compile features
                                                                            [cmake] -- Detecting CXX compile features - done
                                                                            [cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
                                                                            [cmake] -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
                                                                            [cmake] -- Check if compiler accepts -pthread
                                                                            [cmake] -- Check if compiler accepts -pthread - yes
                                                                            [cmake] -- Found Threads: TRUE
                                                                            [cmake] -- Performing Test HAVE_STDATOMIC
                                                                            [cmake] -- Performing Test HAVE_STDATOMIC - Success
                                                                            [cmake] -- Found WrapAtomic: TRUE
                                                                            [cmake] -- Found WrapVulkanHeaders: N:/msys64/clang64/include
                                                                            [cmake] -- Configuring done (0.0s)
                                                                            [cmake] -- Generating done (0.0s)
                                                                            [cmake] -- Build files have been written to: N:/MyProgramming/qtClangCmake/build/Desktop_Qt_static_MinGW_w64_CLANG64_MSYS2_qt6_sta-Release
                                                                            [cmake]
                                                                            [cmake] Прошло времени: 00:08.
                                                                          Помогите, пожалуйста, разобраться, почему у Вас получается, а у меня нет. Проект прикрепил.
                                                                          Прикреплённый файлПрикреплённый файлqtClangCmake.zip (2,33 Кбайт, скачиваний: 23)
                                                                            Цитата tumanovalex @
                                                                            Помогите, пожалуйста, разобраться, почему у Вас получается, а у меня нет. Проект прикрепил.

                                                                            Хм ... дело в том, что я не пользую cmake для сборки, а по старинке qmake. В прикрепленном проекте на всех моих комплектах получаю "Программа cmake не настроена ....". Попробую разобраться, но не сейчас. Ничего не обещаю.
                                                                              Я и не жду обещаний, спасибо что помогаете разобраться. Попробую сделать проект с qmake. О результатах сообщу.
                                                                                Попробовал с qmake. Получается, что рабочие комплекты только shared. Видео https://disk.yandex.ru/d/KHEvNjvvZusy-A. С cmake статически собрались конфигурации с MinGw, c Clang - опять требует dll.
                                                                                  Проверил на другом компьютере без установленных компилятора и библиотек статическую сборку MinGw. Все равно требует dll (скриншоты прикрепил). Размер скомпилированной программы - 167 кб, вряд ли при таком размере в нее включены все нужные библиотеки. Только непонятно, почему при переносе програмы с учтановленными компилятом и библиотеками на другие диски и директории программа на том же компьютере она все равно запускается. Может быть в нее встроены пути к библиотекам на данном компьютере?
                                                                                  Прикреплённая картинка
                                                                                  Прикреплённая картинка

                                                                                  Прикреплённая картинка
                                                                                  Прикреплённая картинка

                                                                                  Прикреплённая картинка
                                                                                  Прикреплённая картинка

                                                                                  Прикреплённая картинка
                                                                                  Прикреплённая картинка

                                                                                  Прикреплённая картинка
                                                                                  Прикреплённая картинка
                                                                                    По-моему, дело было в том, что я не установил qt6-static. Я думал, что они автоматом поставились, раз есть комплект static. После этого я попытался создать проект qtQmake, получил кучу сообщений о неправильных ссылках и программа не скомпилировалась. Попробую с установленным qt5-ststic.
                                                                                      Попробовал с qt5. Размер файла стал 18,5 Мб. Программа, скомпилированная с помощью qmake в статическом выпуске, запустилась без всяких сообщений на компьютере без библиотек.

                                                                                      Добавлено
                                                                                      Вот какие ошибки возникли для QT6 при установленном qt-static
                                                                                      ExpandedWrap disabled
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x190): undefined reference to `gr_make_face_with_ops'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x236): undefined reference to `gr_face_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x396): undefined reference to `gr_face_featureval_for_lang'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x3b6): undefined reference to `gr_face_find_fref'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x3ca): undefined reference to `gr_fref_set_feature_value'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x46d): undefined reference to `gr_make_seg'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x485): undefined reference to `gr_seg_n_slots'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x5c6): undefined reference to `gr_seg_first_slot'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x5ff): undefined reference to `gr_slot_before'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x60a): undefined reference to `gr_slot_after'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x614): undefined reference to `gr_slot_gid'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x689): undefined reference to `gr_slot_can_insert_before'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x6f6): undefined reference to `gr_slot_origin_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x76d): undefined reference to `gr_slot_next_in_segment'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x846): undefined reference to `gr_seg_first_slot'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x881): undefined reference to `gr_slot_advance_Y'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x89b): undefined reference to `gr_slot_next_in_segment'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x8af): undefined reference to `gr_slot_origin_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x8d2): undefined reference to `gr_slot_origin_Y'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x977): undefined reference to `gr_seg_advance_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0x9d0): undefined reference to `gr_slot_origin_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xa2e): undefined reference to `gr_featureval_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xa38): undefined reference to `gr_seg_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xb32): undefined reference to `gr_seg_advance_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xb46): undefined reference to `gr_seg_first_slot'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xb89): undefined reference to `gr_slot_advance_Y'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xba3): undefined reference to `gr_slot_origin_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xbe0): undefined reference to `gr_slot_origin_Y'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc03): undefined reference to `gr_slot_next_in_segment'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc3e): undefined reference to `gr_featureval_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc61): undefined reference to `gr_featureval_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc6b): undefined reference to `gr_seg_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc85): undefined reference to `gr_seg_first_slot'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xc8d): undefined reference to `gr_slot_origin_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xca4): undefined reference to `gr_seg_advance_X'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xcdb): undefined reference to `gr_featureval_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-graphite2.cc.obj):(.text+0xce5): undefined reference to `gr_seg_destroy'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-uniscribe.cc.obj):(.text+0x5e3): undefined reference to `ScriptFreeCache'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-uniscribe.cc.obj):(.text+0x723): undefined reference to `__imp_UuidCreate'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-uniscribe.cc.obj):(.text+0x71): undefined reference to `ScriptPlace'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-uniscribe.cc.obj):(.text+0xc8): undefined reference to `ScriptShape'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libharfbuzz.a(hb-uniscribe.cc.obj):(.text+0xdb): undefined reference to `ScriptItemize'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libfreetype.a(src_bzip2_ftbzip2.c.obj):(.text+0x6c): undefined reference to `BZ2_bzDecompressEnd'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libfreetype.a(src_bzip2_ftbzip2.c.obj):(.text+0x11d): undefined reference to `BZ2_bzDecompress'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libfreetype.a(src_bzip2_ftbzip2.c.obj):(.text+0x32a): undefined reference to `BZ2_bzDecompressEnd'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libfreetype.a(src_bzip2_ftbzip2.c.obj):(.text+0x380): undefined reference to `BZ2_bzDecompressInit'
                                                                                        :-1: ошибка: N:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../lib\libfreetype.a(src_bzip2_ftbzip2.c.obj):(.text+0x612): undefined reference to `BZ2_bzDecompressInit'
                                                                                        :-1: ошибка: collect2.exe: error: ld returned 1 exit status
                                                                                        :-1: ошибка: [Makefile.Release:74: release/qtQmake.exe] Error 1
                                                                                        Засел я за разборки у себя, угрохал почти половину дня. Но результат, который меня устроил, я получил. Напишу основные моменты ...

                                                                                        1) Снес 13 версию QtCreator, вычистил все профиля, удалив:

                                                                                        AppData\Local\QtProject
                                                                                        AppData\Roaming\QtProject

                                                                                        оставил только:

                                                                                        AppData\Roaming\Qt

                                                                                        Установил QtCreator 12.0.2. Причина простая - 13-я версия глючит с генераторами для CMake (не определяет нормально Ninja), с 12-й версией такого нет.

                                                                                        2) Наборы cmake установил, как делал раньше:

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        3) Отладчики также установил как обычно, использовал LLDB

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        4) Установил набор компиляторов

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        Вот тут много важных мелочей!
                                                                                        • Логичная связка - GCC как MinGW, и Clang как Clang с родительским комплектом GCC не работает! Не правильно определяется ABI для Clang
                                                                                        • GCC устанавливается, но потом, в процессе сборки рукается на отсутствие заголовочного файла (хотя он есть), добавление путей поиска не помогает
                                                                                        • Но удачно зарегистрировались компиляторы Clang
                                                                                        • Хотя для них потребуются дополнительные настройки
                                                                                        На примере одного из компиляторов:

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        Все обведенное красным важно установить, чтобы не было ругни системы сборок. Тип компиляторов при добавлении выбираем "Другой". Это позволит более детально настраивать. Пути к заголовочным файлам указываем вручную для каждого компилятора свои. В большей части это нужно для чекера clangd, который проверяет код прямо во время набора. Некоторые товарищи ленятся его настраивать таким образом и используют cppcheck, но мы не ищим лёгких путей :lol: Благо clangd более тщательно проверяет. Мои настройки таких путей, как на моем скрине выше, в том же порядке, и для С, и для С++:

                                                                                        ExpandedWrap disabled
                                                                                          E:/Tools/MSys64/clang32/include
                                                                                          E:/Tools/MSys64/clang32/include/c++/v1
                                                                                          E:/Tools/MSys64/clang32/lib/clang/18/include
                                                                                           
                                                                                          E:/Tools/MSys64/clang32/include
                                                                                          E:/Tools/MSys64/clang32/include/c++/v1
                                                                                          E:/Tools/MSys64/clang32/lib/clang/18/include
                                                                                           
                                                                                          E:/Tools/MSys64/clang64/include
                                                                                          E:/Tools/MSys64/clang64/include/c++/v1
                                                                                          E:/Tools/MSys64/clang64/lib/clang/18/include
                                                                                           
                                                                                          E:/Tools/MSys64/clang64/include
                                                                                          E:/Tools/MSys64/clang64/include/c++/v1
                                                                                          E:/Tools/MSys64/clang64/lib/clang/18/include
                                                                                           
                                                                                          E:/Tools/MSys64/mingw32/include
                                                                                          E:/Tools/MSys64/mingw32/include/c++/13.2.0
                                                                                          E:/Tools/MSys64/mingw32/include/c++/13.2.0/i686-w64-mingw32
                                                                                          E:/Tools/MSys64/mingw32/lib/gcc/i686-w64-mingw32/13.2.0/include
                                                                                           
                                                                                          E:/Tools/MSys64/mingw64/include
                                                                                          E:/Tools/MSys64/mingw64/include/c++/13.2.0
                                                                                          E:/Tools/MSys64/mingw64/include/c++/13.2.0/x86_64-w64-mingw32
                                                                                          E:/Tools/MSys64/mingw32/lib/gcc/x86_64-w64-mingw32/13.2.0/include
                                                                                           
                                                                                          E:/Tools/MSys64/ucrt64/include
                                                                                          E:/Tools/MSys64/ucrt64/include/c++/13.2.0
                                                                                          E:/Tools/MSys64/ucrt64/include/c++/13.2.0/x86_64-w64-mingw32
                                                                                          E:/Tools/MSys64/ucrt64/lib/gcc/x86_64-w64-mingw32/13.2.0/include


                                                                                        Часть компиляторов с постфиксом "-static" нужно было продублировать, но для статики изменить ABI компилятора на "unknown" вместо "msys":

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        Не знаю почему, но часть Qt-static были собраны именно с таким ABI.

                                                                                        5) Устанавливаем Qt

                                                                                        Желательно выбирать названия qmake или qmake6 как у меня на скрине:

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        6) Собираем комплекты

                                                                                        Опять же см. скрин, детали важны:

                                                                                        Прикреплённая картинка
                                                                                        Прикреплённая картинка


                                                                                        Результат

                                                                                        Получаем 18 комплектов. Системы сборки QMake и CMake работают обе. В качестве компиляторов используется только Clang, в качестве отладчика LLDB.

                                                                                        Важное замечание

                                                                                        Не знаю, какого лешего, но все статические сборки всё равно тянут за собой динамически libzstd.dll и zlib1.dll. Для того, чтобы их влинковывать статически в будущем посмотрю файлы mkspec. Ну а пока решение "в лоб" ...

                                                                                        Для системы сборки QMake добавляем в файл проекта строчку:

                                                                                        ExpandedWrap disabled
                                                                                          LIBS += -lzstd -lz

                                                                                        Для системы сборки CMake меняем строчку:

                                                                                        ExpandedWrap disabled
                                                                                          target_link_libraries(TestCmake PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)

                                                                                        на

                                                                                        ExpandedWrap disabled
                                                                                          target_link_libraries(TestCmake PRIVATE Qt${QT_VERSION_MAJOR}::Widgets zstd z)


                                                                                        The end :wacko:
                                                                                          Спасибо за объяснения и скриншоты. Возникли следующие вопросы, по которым хотелось бы узнать Ваше мнение:
                                                                                          1. Такие проблемы возникают только при статической линковке?
                                                                                          2. Такие проблемы обусловлены использованием msys2 и при использовании комплектов QT, которые имеются на различных ресурсах, таких проблеме не будет?
                                                                                          3. Предложенное Вами решение не позволит в дальнейшем обновлять qtcreator с помощью msys2?
                                                                                          4. Такие проблемы возникают только в Windows и не будут возникать для других ОС?
                                                                                            Цитата tumanovalex @
                                                                                            1. Такие проблемы возникают только при статической линковке?
                                                                                            2. Такие проблемы обусловлены использованием msys2 и при использовании комплектов QT, которые имеются на различных ресурсах, таких проблеме не будет?

                                                                                            Тут "черный ящик". То, что я писал - результат анализа установок, откатов, проб других вариантов. Я тут только могу развести руками.

                                                                                            Цитата tumanovalex @
                                                                                            Предложенное Вами решение не позволит в дальнейшем обновлять qtcreator с помощью msys2?

                                                                                            Да, мое решение не позволит. Я QtCreator использую как внешний инструмент, не связанный с MSYS2. И, в данный момент, я видать не ошибся в своем решении.

                                                                                            Цитата tumanovalex @
                                                                                            Такие проблемы возникают только в Windows и не будут возникать для других ОС?

                                                                                            :-? Тут даже Линус Товальдс должен креститься по три раза на день ... ну кто же его знает.

                                                                                            tumanovalex, немножко по теме, и немножко нет...

                                                                                            В свое время в Минске (в районе 2003-2005 годов) пооткрывали киоски быстрого питания, наверное армяне. В рационе был вкуснейший кебаб на деревянной палочке, картошка фри, маринованный лук, ну там майонез и кетчуп, и я еще покупал к этому томатный сок и пол стакана сметаны. Потом все это позакрывали, снесли. А я до сих пор вспоминаю - аж слюнки текут. Вот считай, это теперешняя аналогия MSYS2. Но этот проект сейчас живет и радует. Не упусти радость. Но это увы - не "ресторан". Там нет очень важного инструмента valgrind! Для этого я содержу и поддерживаю в актуальном состоянии две Linux-системы под VMWare - Linux Manjaro и ArchLinux. Вот это, считай, можно считать "рестораном". Там и нативные системы сборки есть, с тем же valgrind, и система кросс-сборок MXE. Но везде, конечно, есть свои плюсы и минусы. К примеру, в одном из своих последних проектов мне пришлось отлаживать подсистему считывания магнитных карточек. Реализация - чисто и чистейше виндовая (время торопило). Вот тут именно MSYS2 нереально помог. Из-под виндовса отладка норм, а вот из-под линукса пришлось бы настраивать отладку из-под Wine - а это еще тот гемор.

                                                                                            Резюме

                                                                                            Не бойся осваивать новое, не бойся экспериментировать самостоятельно. Да, будут "промежуточные" бесполезные знания. Но и будет поднятие твоего экспиренса, да и чуйку прокачаешь.
                                                                                              Спасибо за ответ. Полностью согласен с выводами. Буду изучать QT, инструменты и пытаться реализовать полученные знания на практике.
                                                                                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                              0 пользователей:


                                                                                              Рейтинг@Mail.ru
                                                                                              [ Script execution time: 0,1267 ]   [ 40 queries used ]   [ Generated: 16.06.24, 21:51 GMT ]