Problems with Open-Source Downloads read https://www.qt.io/blog/problem-with-open-source-downloads and https://forum.qt.io/post/638946
Статическая dll на Qt4
-
Здравствуйте!
Есть две сборки qt 4.8.4 - static и shared на mingw32 4.7.
Есть проект - бибилиотека dbconnect, которая в работе использует классы qt, но экспортирует только обычные функции со стандартными типами параметров (т.е, ни классы, ни что-то специфичное для qt вообще не экспортируется).
В итоге должна получиться статическая dbconnect.dll, не зависящая от библиотек qt.
Если собирать на shared, то dbconnect.dll получается, но она, само собой, зависит от библиотек qt и mingw.
Если собирать на static, то получается dbconnect.a Да, это статическая библиотека, но в другом смысле, мне-то нужна статическая dll...Вопрос такой: как на статической qt получить .dll вместо .a?
-
Я, конечно, не такой знаток архитектуры... но разве существуют "статические DLL"? Сама аббревиатура DLL подразумевает "динамичность". Знаю есть понятия динамической и статической ЗАГРУЗКИ DLL, но не самих DLL.
То что создается файл *.a - оно и понятно - это библиотечный файл, который при компиляции приложения просто целиком "войдет" в итоговый *.exe.
-
Под статической dll я имел в виду то, что в неё будет включён весь необходимый код qt, и она не будет для своей работы требовать библиотек Qt. В этом и есть смысл статических сборок самого Qt, нет?
-
Проблема решилась очень просто.
Достаточно в файл .pro добавить CONFIG += dll (гугл подсказал). Размерчик dll - почти 10 метров (core, gui, sql)... Сжимается upx-ом примерно в 3 раза. Попробовал вызвать из проги на паскале - всё работает и каши/лишних dll не просит.Кстати, чтобы собрать статическую (.a) библиотеку в shared Qt, нужно в .pro добавить CONFIG += staticlib