Решил обновить Qt. Всякий раз это влечет за собой переустановку драйверов для работы с базами данных.
Решил записать последовательность действий.
Надеюсь сэкономлю кому-то пару часов. :-)
Устанавливаем Qt 5.11.
В документации по Qt сказано:
How to Build the QIBASE Plugin on Unix and macOS
The following assumes InterBase or Firebird is installed in /opt/interbase:
If you are using Firebird, the Firebird library has to be set explicitly:
cd $QTDIR/qtbase/src/plugins/sqldrivers
qmake -- IBASE_PREFIX=/opt/interbase IBASE_LIBS=-lfbclient
make sub-ibase
Но все не так просто.
Изучаем SuSE, заголовочные файлы Fierbird находятся в /usr/include/firebird.
Для того что бы запускался qmake необходимо добавить в .bashrc
- PATH=$PATH:~/Qt5.11.0/5.11.0/gcc_64/bin
- export PATH
Перелогиниваемся или открываем новую консоль.
Переходим в папку с драйверами.
- cd ~/Qt5.11.0/5.11.0/Src/qtbase/src/plugins/sqldrivers
Теперь отличие от документации:
- qmake -- IBASE_INCDIR=/usr/include/firebird IBASE_LIBS=-lfbclient
если делать как указано в документации ничего не происходит :-)
Получаем следующее:
- Info: creating stash file /home/rust/Qt5.11.0/5.11.0/Src/qtbase/src/plugins/sqldrivers/.qmake.stash
- Running configuration tests...
- Checking for DB2 (IBM)... no
- Checking for InterBase... yes
- Checking for MySQL... yes
- Checking for OCI (Oracle)... no
- Checking for ODBC... no
- Checking for PostgreSQL... no
- Checking for SQLite (version 2)... no
- Checking for TDS (Sybase)... no
- Done running configuration tests.
- Configure summary:
- Qt Sql:
- DB2 (IBM) .............................. no
- InterBase .............................. yes
- MySql .................................. yes
- OCI (Oracle) ........................... no
- ODBC ................................... no
- PostgreSQL ............................. no
- SQLite2 ................................ no
- SQLite ................................. yes
- Using system provided SQLite ......... no
- TDS (Sybase) ........................... no
- Qt is now configured for building. Just run 'make'.
- Once everything is built, Qt is installed.
- You should NOT run 'make install'.
- Note that this build cannot be deployed to other machines or devices.
- Prior to reconfiguration, make sure you remove any leftovers from
- the previous build.
Для драйвера Interbase конфигурация готова.
Дальше...
- make sub-ibase
При компиляции получаем ошибку:
- g++: error: unrecognized command line option ‘-std=c++1z’
- g++: error: unrecognized command line option ‘-Wdate-time’
Можно по гуглить….
Переходим в каталог ibase.
Открываем в редакторе Makefile.
В двух местах меняем -std=c++1z на -std=c++11.
И в этих же строках удаляем -Wdate-time.
Сохраняем файл.
Переходим на каталог выше и повторяем:
- make sub-ibase
Ура! Он собрался.
Теперь бы его еще проинсталировать…
- make sub-ibase-install_subtargets
Можно пользоваться драйвером.
Вот такие танцы с бубнами.