На главную Наши проекты:
Журнал   ·   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 начинающего
    Все установлено. По ссылке 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
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 [2] 3 4  все


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