Отсутствие драйвера SQLite в пакете Qt 4 на Linux

Qt, Linux, SQLite

Дорого времени суток, работаю на Astra-linux, возникла необходимость в SQLite, драйвер которой ,вроде как, стандартный при установке Qt. Мною были установлены пакеты qt4-default и qtcreator, и в итоге драйвера там не оказалось, но вместе с этими двумя пакетами подтянулся и пакет qt5-default в котором есть данный драйвер. Узнал при помощи QLibraryInfo что qt ищет плагины по следующему пути: usr/lib/x86_64_linux_gnu/qt4/plugins, после этого пытался закинуть туда драйвер из пакета qt5, но безуспешно, qtcreator не видит этот драйвер. Сам qt5 в котором уже есть необходимый драйвер использовать не могу в силу требований. Кто нибудь сталкивался с такой проблемой? Или может кто знает пути решения?. Что я уже перепробовал: закинуть драйвер который лежит в qt5/plugins/sqldrivers/ во все возможные другие папки (например - в корень проекта или usr/lib и т. д.), изменить путь где происходит поиск плагинов использую команды как setLibraryPath и addLibraryPath.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

15
Evgenii Legotckoi
  • 25 мая 2020 г. 2:58

Добрый день.
Ищите, где скачать Qt 4 отдельно.
Из репозитория никто Qt не устанавливает, постоянно какие-то проблемы вылазят вроде ваших.

    Andrei Yankovich
    • 25 мая 2020 г. 3:01
    • (ред.)

    Решение 1 самое правельно.
    Избавится от Astra-linux (она не безопасна и не допилина).

    Решение 2
    https://github.com/qt/qt
    Клоним и билдим с нужными плагинами.
    ./configure -prefix ~/myNewQt4 -opensource -confirm-license -release -nomake examples -nomake tests -ccache -plugin-sql-sqlite
    make -j$nproc

    make install

    Опции я взял из qt5 так как сам ни разу не билдил 4 й qt. Если они не подойдут поищите на форумах опции для qt4.
    Вот тут

      Спасибо за ответы, буду пробовать. А от Astra-linux я бы с удовольствием избавился, но нельзя.

        Andrei Yankovich
        • 25 мая 2020 г. 3:28
        • (ред.)

        @Evgenij Sal'nikov как я тебя понимаю.

          o
          • 25 мая 2020 г. 3:39

          расскажите об этом нашим силовикам, они вот не в курсе и с интересом выслушают ваше экспертное мнение.

            o
            • 25 мая 2020 г. 3:41

            почему вы используете решение на qt4.x, если в астре 1.6 доступна версия 5.11?

              Andrei Yankovich
              • 25 мая 2020 г. 3:42

              Уже, их не интересует что под капотом.

                o
                • 25 мая 2020 г. 3:46
                • (ред.)

                тут есть огромная кнопка "сообщить об уязвимости", не плохо бы ей воспользоваться. тык

                  Да мне тоже интересно почему, но сказано qt4, стабильность, и тонна кода написана уже, не один год 4-ый qt используется. Да и астру 1.6 я буквально позавчера поставил. У большинста персонала до сих пор 1.4-1.5

                    o
                    • 25 мая 2020 г. 3:57

                    там 5.3 как минимум, но раз уж так, качать отсюда сорцы, а не с гитхаба, и собирать руками.

                      Andrei Yankovich
                      • 25 мая 2020 г. 4:17
                      • (ред.)

                      а клинится ты как будешь ?
                      на гихабе прямое зерколо, гараздо удобнее.

                      git clone https://github.com/qt/qt
                      cd qt 
                      git checkout v4.8.7
                      git submodule update --init --recursive
                      ./configure -prefix ~/myNewQt4 -opensource -confirm-license -release -nomake examples -nomake tests -ccache -plugin-sql-sqlite
                      make -j$nproc
                      make install
                      

                      в случае неуспеха выполнения configure выполнять git clean -xdf; git submodule foreach git clean -xdf

                        o
                        • 25 мая 2020 г. 4:25

                        Потому что ее не надо в систему ставить, т.к. пользователи не будут тянуть что-то с гитхаба и устанавливать. Эту библиотеку придется поставлять вместе с прогой. Соответсвенно, эту библиотеку надо билдить и работать с ней как с собственной библиотекой.

                          Andrei Yankovich
                          • 25 мая 2020 г. 4:31
                          • (ред.)

                          make install

                          установит qt в ~/myNewQt4 так как там префикс стоит в конфигуре

                          затем делаем так

                          ~/myNewQt4/bin/qmake myProject.pro
                          

                          после этого выполняем

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake 
                          

                          получаем дистрибутив со свежими только необюходимыми библиотеками qt
                          если боимся за рантайм то выполняем

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake -deploySystem
                          

                          если нужна еще инсталяшка

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake -deploySystem qif
                          

                          если проект из кучи библиотек

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake -deploySystem qif -libDir ~/myprojectSourceDir -recursiveDepth 5
                          

                          Внимание cqtdeployer работает только под астрой 1.6

                            Итак эта эпопея наконец подошла к концу после двух дней возьни. После того как вы мне подсказали возможные пути решения я пытался их применить, качая сорсы как с git так и с архива сайта qt, собирай их по разному. То у меня после использования make -j$nproc зависало все напроч и вылетало, то ./configure выдавал ошибки bash, то make install выдавал подобные ошибки :ошибка выполнения рецепта для цели obj/release/pcre_exec.o, вообщем крутил я все это как мог. Параллельно ища на просторах интренета, то что я еще не попробовал и наткнулся на следующую тему где написано что если поискать в неком synaptic по тегу qt sqlite то можно узнать о существовании пакета libqt4-sql-sqlite. Так как я пользуюсь linux-образными системами совсем немного, что такое synaptic Я не знаю, поэтому первое что я сделал это написал sudo apt install synaptic в консоле, на что получил ответ что synaptic уже установлен. Следом я загуглил что такое synaptic, и потом следуя аналогии apt написал sudo synaptic install libqt4-sql-sqlite, на что мне открылся менеджер пакетов synaptic. В нем в разределе "Средства разработки" я стал искать данный пакет(libqt4-sql-sqlite), но не нашел, зато нашел пакеты связанные с самим qt и увидел что для qt5 установлен пакет qt5-dev-tools а для qt4 такой пакет не установлен, заподозрив не ладное я стал его устанавливать и первой же строчной увидел, что сейчас будет установлен пакет libqt4-sql-sqlite, ну все думаю дело сделано. Все установилось полез проверять в usr/lib/x86_64_linux_gnu/qt4/plugins и там действительно появилась папка sqldrivers а в ней нужная мне либа. И вот запустив qtcreator и готовый наконец продолжить проект я получил по лицу и снова тот же ворох ошибок, что драйвера нету - база данных не открыта. Посидев минут 10, пересобрав проект пару раз и сделав пару перезагрузок, вспомнил о том что когда мне нужно работать с raw сокетами astra вынуждает меня запускать qtcreator через sudo и в этом случае открывается фантомный qtcreator который нужно настраивать отдельно и который создает для проектов свои файлы с настройками, и вот только после запуска через sudo очистив проект и перезапустив qmake, все наконецто заработало как надо.

                              BlinCT
                              • 26 мая 2020 г. 6:16

                              Вот честно непонимаю почему до сих пор используют qt4, там же столько всего отсутствует, много фишек и возможностей нету там. То есть используя такое старье приходится много писать самому а не использовать готовое и провереное из 5 версии.
                              Если бы мне сказали что надо использовать на работе 4 версию не мотивировав такое решение что на такой работе будет много проблем и проще уйти от туда.

                                Комментарии

                                Только авторизованные пользователи могут публиковать комментарии.
                                Пожалуйста, авторизуйтесь или зарегистрируйтесь
                                SH
                                • Sak Hax
                                • 25 апреля 2024 г. 11:00

                                C++ - Тест 001. Первая программа и типы данных

                                • Результат:33баллов,
                                • Очки рейтинга-10
                                г
                                • ги
                                • 23 апреля 2024 г. 12:51

                                C++ - Тест 005. Структуры и Классы

                                • Результат:41баллов,
                                • Очки рейтинга-8
                                l
                                • laei
                                • 23 апреля 2024 г. 6:19

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Результат:10баллов,
                                • Очки рейтинга-10
                                Последние комментарии
                                k
                                kmssr8 февраля 2024 г. 15:43
                                Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                АК
                                Анатолий Кононенко4 февраля 2024 г. 22:50
                                Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                EVA
                                EVA25 декабря 2023 г. 7:30
                                Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                                J
                                JonnyJo25 декабря 2023 г. 5:38
                                Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                                G
                                Gvozdik18 декабря 2023 г. 18:01
                                Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                                Сейчас обсуждают на форуме
                                G
                                Gar22 апреля 2024 г. 2:46
                                Clipboard Как скопировать окно целиком в clipb?
                                DA
                                Dr Gangil Academics20 апреля 2024 г. 4:45
                                Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                                a
                                a_vlasov14 апреля 2024 г. 3:41
                                Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                                Павел Дорофеев
                                Павел Дорофеев13 апреля 2024 г. 23:35
                                QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                                f
                                fastrex4 апреля 2024 г. 1:47
                                Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

                                Следите за нами в социальных сетях