Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.236.100.210] |
|
Страницы: (4) 1 2 [3] 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Спасибо за подробные ответы. Попробую сам найти программу для определения нужных dll. При выборе комплекта со статической линковкой при запуске программы опять требуются многочисленные dll (скриншоты прикрепил). Как правильно настроить qtcreator, чтобы создавался исполняемый файл без dll?
Прикреплённая картинка
Прикреплённая картинка
Добавлено Задал вопрос о программе для определния нужных dll, получил ссылки (https://www.cyberforum.ru/qt/thread3164758.html#post17286537) |
Сообщ.
#32
,
|
|
|
Может быть нужно что-то подравить в CMakeLists.txt, чтобы была статическая компановка?
|
Сообщ.
#33
,
|
|
|
Цитата tumanovalex @ Может быть нужно что-то подравить в CMakeLists.txt, чтобы была статическая компановка? Думаю, что можно. Но это будет очень сложно. Проще вариант - использовать уже готовые к этому сборки (комплекты). Проще - это не в 1-2 раза, а в 1-2 порядка. |
Сообщ.
#34
,
|
|
|
Как видно на скриншоте, я выбрал при сборке выпуска именно комплект static. Вот только при запуске программы все равно требуется много dll. Что я делаю неправильно?
|
Сообщ.
#35
,
|
|
|
Ну так по одному скрину трудно сказать что не так. Покажи настройки в этом комплекте.
|
Сообщ.
#36
,
|
|
|
По адресу https://disk.yandex.ru/d/9AuscdCoY9hdQg разместил видео, в котором постарался показать все настройки. Какая еще нужна информация для того, чтобы все-таки разобраться, почему не происходит статической линковки? На всязки случай размещаю сообщения, которые появляются при сборке
[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 Кбайт, скачиваний: 31) |
Сообщ.
#37
,
|
|
|
Цитата tumanovalex @ Помогите, пожалуйста, разобраться, почему у Вас получается, а у меня нет. Проект прикрепил. Хм ... дело в том, что я не пользую cmake для сборки, а по старинке qmake. В прикрепленном проекте на всех моих комплектах получаю "Программа cmake не настроена ....". Попробую разобраться, но не сейчас. Ничего не обещаю. |
Сообщ.
#38
,
|
|
|
Я и не жду обещаний, спасибо что помогаете разобраться. Попробую сделать проект с qmake. О результатах сообщу.
|
Сообщ.
#39
,
|
|
|
Попробовал с qmake. Получается, что рабочие комплекты только shared. Видео https://disk.yandex.ru/d/KHEvNjvvZusy-A. С cmake статически собрались конфигурации с MinGw, c Clang - опять требует dll.
|
Сообщ.
#40
,
|
|
|
Проверил на другом компьютере без установленных компилятора и библиотек статическую сборку MinGw. Все равно требует dll (скриншоты прикрепил). Размер скомпилированной программы - 167 кб, вряд ли при таком размере в нее включены все нужные библиотеки. Только непонятно, почему при переносе програмы с учтановленными компилятом и библиотеками на другие диски и директории программа на том же компьютере она все равно запускается. Может быть в нее встроены пути к библиотекам на данном компьютере?
Прикреплённая картинка
Прикреплённая картинка
Прикреплённая картинка
Прикреплённая картинка
Прикреплённая картинка
|
Сообщ.
#41
,
|
|
|
По-моему, дело было в том, что я не установил qt6-static. Я думал, что они автоматом поставились, раз есть комплект static. После этого я попытался создать проект qtQmake, получил кучу сообщений о неправильных ссылках и программа не скомпилировалась. Попробую с установленным qt5-ststic.
|
Сообщ.
#42
,
|
|
|
Попробовал с qt5. Размер файла стал 18,5 Мб. Программа, скомпилированная с помощью qmake в статическом выпуске, запустилась без всяких сообщений на компьютере без библиотек.
Добавлено Вот какие ошибки возникли для QT6 при установленном qt-static :-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 |
Сообщ.
#43
,
|
|
|
Засел я за разборки у себя, угрохал почти половину дня. Но результат, который меня устроил, я получил. Напишу основные моменты ...
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) Установил набор компиляторов Прикреплённая картинка
Вот тут много важных мелочей! На примере одного из компиляторов: Прикреплённая картинка
Все обведенное красным важно установить, чтобы не было ругни системы сборок. Тип компиляторов при добавлении выбираем "Другой". Это позволит более детально настраивать. Пути к заголовочным файлам указываем вручную для каждого компилятора свои. В большей части это нужно для чекера clangd, который проверяет код прямо во время набора. Некоторые товарищи ленятся его настраивать таким образом и используют cppcheck, но мы не ищим лёгких путей Благо clangd более тщательно проверяет. Мои настройки таких путей, как на моем скрине выше, в том же порядке, и для С, и для С++: 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 добавляем в файл проекта строчку: LIBS += -lzstd -lz Для системы сборки CMake меняем строчку: target_link_libraries(TestCmake PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) на target_link_libraries(TestCmake PRIVATE Qt${QT_VERSION_MAJOR}::Widgets zstd z) The end |
Сообщ.
#44
,
|
|
|
Спасибо за объяснения и скриншоты. Возникли следующие вопросы, по которым хотелось бы узнать Ваше мнение:
1. Такие проблемы возникают только при статической линковке? 2. Такие проблемы обусловлены использованием msys2 и при использовании комплектов QT, которые имеются на различных ресурсах, таких проблеме не будет? 3. Предложенное Вами решение не позволит в дальнейшем обновлять qtcreator с помощью msys2? 4. Такие проблемы возникают только в Windows и не будут возникать для других ОС? |
Сообщ.
#45
,
|
|
|
Цитата 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 - а это еще тот гемор. Резюме Не бойся осваивать новое, не бойся экспериментировать самостоятельно. Да, будут "промежуточные" бесполезные знания. Но и будет поднятие твоего экспиренса, да и чуйку прокачаешь. |