Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.200.122.214] |
|
Страницы: (4) 1 [2] 3 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Все установлено. По ссылке https://disk.yandex.ru/i/zs9l9VTPxncLnA из-за большого размера разместил скриншот проекта. Каталог сборки выделен красным, но он существует, его архив я прикрепил. Наверное красный из-за неправильных настроек файлов в нем. При наведении на желтый треугольник появляется сообщение, указанное в скриншоте в сообщении 12.
При загрузке проекта щелчком по CMakeLists.txt и нажатии кнопки Configure Project появляется сообщение: :-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. Прикреплённый файлDesktop_Qt_6_7_0_shared_MinGW_w64_CLANG64_MSYS2_Debug.zip (33,39 Кбайт, скачиваний: 32) |
Сообщ.
#17
,
|
|
|
Прикрепи сам проект в архиве. Посмотрю, может чего увижу.
|
Сообщ.
#18
,
|
|
|
Спасибо. Проект прикрепил.
Прикреплённый файлqtProcFilesClang.zip (2,65 Кбайт, скачиваний: 28) |
Сообщ.
#19
,
|
|
|
Я у себя в директории N:\msys64\clang64\bin\ не нашел clang++. Видимо, поэтому не получается. Проверил на Debian - все нормально, файлы clang и clang++ есть, все работает. Проверил с помощью pacman -Ss clang - получил следующее:
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 N:\msys64\clang64\bin\libclang.dll N:\msys64\clang64\bin\libclang-cpp.dll |
Сообщ.
#20
,
|
|
|
Цитата Starostin @ Что нужно сделать, чтобы файлы clang++ и clang появились? Нужно поставить собственно clang (выбери нужный тебе комплект/ы): 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 |
Сообщ.
#21
,
|
|
|
Да, и сразу хочу предупредить ... увы и MSYS2 не идеален
Что касается сборки статически-линкованных проектов с Qt5/6, можно смело получить нечто подобное: ... 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 комплектов для статической линковки, собирается не все и не все хорошо: Но и не мудрено! Изначально комплекты со статической линковкой не хотели ставится т.к. ABI у qmake были внезапно x86-windows-unknown-pe-*, когда у компиляторов было все как положено x86-windows-msys-pe-*, и пришлось делать дубли компиляторов и насильно менять им ABI, только тогда комплекты зарегались. Одно меня радует под моей любимой Манжарой в проекте MXE на сей раз полностью собрались все 8 комплектов Qt5 и Qt6! Вообще без единой ошибки. Но и тут ... LLVM, а соответственно, и Clang не собрались. Да и ладно! Такие вот дела. |
Сообщ.
#22
,
|
|
|
У меня такая-же проблема, как и у автора темы. Воспользовался Вашими советами по установке clang. Программы clang.exe и clang++.exe появились в директории mingw64. Но в комплекте для clang указана директория N:\msys64\clang64\clang++.exe. При этом возможности сменить директорию с программой нет (скриншот по ссылке https://disk.yandex.ru/i/oOWHVGNMbQPeAw). Как изменить в настройках комплекта путь? Я также не понял, как можно создать свой комплект со своими настройками (выбрать нужный набор компиляторов для С и С++, нужный QT в случае установки QT5 и QT6 и др.). Попытался сделать, компилятор для C выбрал, а компилятор дляя C++ выбрать не получилось, как ни старался.
|
Сообщ.
#23
,
|
|
|
Должно быть 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++ выбрать не получилось, как ни старался. Рассказывать долго, сам решал проблемы научным тыком. Я лучше покажу на картинках, важные штуки при настройке я на скринах выделял красным. Настройки лучше всего проводить в порядке как на скринах, чтобы в конце концов все объединять в комплекты: Прикреплённая картинка
Прикреплённая картинка
Прикреплённая картинка
Прикреплённая картинка
Прикреплённая картинка
|
Сообщ.
#24
,
|
|
|
Спасибо огромное за скриншоты! Правильно ли я понял, что в предустановленных комплектах поменять пути к компилятору ( N:\msys64\clang64\bin\clang++.exe на N:\msys64\mingw64\bin\clang++.exe) не удастся и нужно создать свой комплект?
|
Сообщ.
#25
,
|
|
|
Цитата tumanovalex @ Спасибо огромное за скриншоты! Правильно ли я понял, что в предустановленных комплектах поменять пути к компилятору ( N:\msys64\clang64\bin\clang++.exe на N:\msys64\mingw64\bin\clang++.exe) не удастся и нужно создать свой комплект? В комплектах пути нельзя менять, но можно менять компиляторы комплекта(ов). Если тот компилятор определился неверно, можно сделать свой - и им заменить неправильный в комплекте. |
Сообщ.
#26
,
|
|
|
Судя по скриншоту № 3 Вам удалось установить clang в директорию msys64/clang. Когда я устанавливаю clang командой
pacman -S mingw-w64-x86_64-clang |
Сообщ.
#27
,
|
|
|
Цитата 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 |
Сообщ.
#28
,
|
|
|
Спасибо большое, все установилось в clang64
|
Сообщ.
#29
,
|
|
|
Я попробовал сделать статическую релизную сборку 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 Кбайт, скачиваний: 31) |
Сообщ.
#30
,
|
|
|
Привет!
Отвечу в обратном порядке Цитата tumanovalex @ 3. Можно ли сделать с помощью QTCreator программу, которая бы не требовала dll и ее можно было бы переносить одним исполняемым файлом без всяких dll на другой ПК. Да, это называется статическая сборка (линковка) - все необходимое включается в исполняемый файл. Увы и ах, но с использованием Qt5/6 нужно ожидать размер исполняемого файла от 14Mb (примерно) и выше. Как говорится, здравствуй жЫр Цитата 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 примерно. Может сейчас что-то стало лучше, не знаю - надо вопрос прокачать. А вообще, в наш век |