Компиляция MySql драйвера QT [Решено]

Изображение пользователя Vorobey.

Обновил Qt Creator и вместе с ним 5.9.1 и отвалился Mysql драйвер.

компилирую как по инструкции

$ cd ~/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/mysql
$ ~/Qt/5.9.1/gcc_64/bin/qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
Cannot read /home/user/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: No such file or directory
Project ERROR: Library 'mysql' is not defined.

Что не так?
-----------
P.S.
Решил удалением 5.9.1 и 5.8

Установил 5.7 Запустил выше приведенную команду и з мануала Qt (для 5.9.1 и 5.8 не работает)

0
fox4 - 25 Сентябрь, 2017 - 15:18
Изображение пользователя fox4.

Да собственно она вам пишет что не так
Cannot read /home/user/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: No such file or directory
Не могу прочитать /home/user/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: Не найден файл или директория.
Project ERROR: Library 'mysql' is not defined
Библиотека 'mysql' не определена.
По этому пути действительно нет файла qtsqldrivers-config.pri но зато есть файл qsqldriverbase.pri в котором есть такие строчки
QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
include($$shadowed($$PWD)/qtsqldrivers-config.pri)

PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

Это должно навести на размышления о необходимости подправить ВАШ файл проекта для версий 5.8 и 5.9.1
А вообще выложите Ваш файл *.pro сюда под кат если конечно это не коммерческая тайна :-)

0
Vorobey - 26 Сентябрь, 2017 - 12:28
Изображение пользователя Vorobey.

Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/mysql/mysql.pro

Qt/5.9.1/Src/qtbase/src/src.pro

+1
fox4 - 26 Сентябрь, 2017 - 20:06
Изображение пользователя fox4.

Извините Vorobey я не сразу сообразил что вы компилируете из под консоли а не в среде QTCreator
Наберите в консоли команду
qmake -v
Наверняка увидите что то типа
QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu

Дело в том что настройки окружения Qt системы и QtCreator-а установленного в домашнюю папку при помощи иструмента Qt-MaintenanceTool наверняка сильно различаются особенно что касается использования библиотек.
Кстати у меня kubuntu 17.04 но насколько я понял системный qmake все равно использует Qt4 а не Qt5 кстати для использования библиотек Qt5 раньше использовалась команда переключения вот только позабыл какая.
В общем совет простой если вы просматриваете примеры пробуйте их компилировать в среде QtCreator например загрузив файл mysql.pro из
Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/mysql/
Лично у меня сборка с комплектом 5.9.1 проходит успешно

На скриншоте видно что в папке Qt/5.9.1/Src/qtbase/src/plugins/
появилась папка build-sqldrivers-Desktop_Qt_5_9_1_GCC_64bit-Debug с кучей разных файлов в том числе и с компилированной библиотекой libqsqlite.so если интересует только бинарник.
0
Vorobey - 27 Сентябрь, 2017 - 13:25
Изображение пользователя Vorobey.

Если по этому пути Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/ открыть поект.
Скомпилировать libqsqlmysql.so. Все проходит удачно.
Далее, если я правильно понял - перекинуть
Qt/5.9.1/Src/qtbase/src/plugins/build-sqldrivers-Desktop_Qt_5_9_1_GCC_64bit2-Debug/plugins/sqldrivers/libqsqlmysql.so

В /Qt/5.9.1/gcc_64/plugins/sqldrivers/
Но так тоже драйвер не загружается
ldd libqsqlmysql.so все библиотеки на месте...

0
fox4 - 27 Сентябрь, 2017 - 15:12
Изображение пользователя fox4.

Назовите программу которая должна загружать и использовать этот драйвер если она написана вами выложите .pro файл этой программы

0
fox4 - 27 Сентябрь, 2017 - 19:00
Изображение пользователя fox4.

В моём случае
ldd ./libqsqlite.so
дает

Как видно для запуска требуется libQt5Core.so.5 не ниже 5.9
Даже использование
sudo apt install qt5-default
дает
QMake version 3.0
Using Qt version 5.7.1 in /usr/lib/x86_64-linux-gnu

Если использование библиотек с версией Qt 5.9 принципиально попробуйте закинуть библиотеки в папку с запускаемой программой если не принципиально скомпилируйте вашу программу с комплектом 5.7
0
Vorobey - 28 Сентябрь, 2017 - 00:12
Изображение пользователя Vorobey.

~/Qt/5.9.1/gcc_64/plugins/sqldrivers$ ldd ./libqsqlmysql.so

Мне не принципиально 5.9 - думал с пол пинка...в топку...
Спасибо за помощь.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры