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


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
Страницы: (4) 1 2 [3] 4  все  ( Перейти к последнему сообщению )  
> Работа с QT начинающего
    Спасибо за подробные ответы. Попробую сам найти программу для определения нужных 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 - а это еще тот гемор.

                                Резюме

                                Не бойся осваивать новое, не бойся экспериментировать самостоятельно. Да, будут "промежуточные" бесполезные знания. Но и будет поднятие твоего экспиренса, да и чуйку прокачаешь.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 2 [3] 4  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0667 ]   [ 24 queries used ]   [ Generated: 16.06.24, 22:55 GMT ]