Qt/C++ - Урок 053. Сборка IBASE SQL драйвера Qt 5.7 на openSUSE Leap 42.1

FireBird, IBASE, Leap, openSUSE, Qt, SQL

Установка Qt 5.7 на openSUSE Leap 42.1

Скачиваем последнюю версию Qt для Linux:

wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run

Делаем файл исполняемым

chmod +x qt-unified-linux-x64-online.run

Устанавливаем gcc, make и прочие необходимые библиотеки:

sudo zypper install --type pattern devel_basis

Далее устанавливаем Qt:

./qt-unified-linux-x64-online.run

Следуем указаниям графического инсталятора. Не забываем отметить пункт Source для установки исходных кодов библиотек.

Сборка IBASE SQL драйвера

Для сборки драйвера необходимы firebird development пакеты. Если они не установлены, то следует выполнить следующие команды для установки данных пакетов.

sudo zypper in libfbclient2-devel

После чего переходим в каталог с исходниками драйвера ibase, которые находятся в папке sql драйверов Qt.

cd <QtPath>/5.7/Src/qtbase/src/plugins/sqldrivers/ibase

После чего редактируем include файл проекта, поскольку в противном случае при сборке будут ошибки об отсутствии библиотек.

vi ../../../sql/drivers/ibase/qsql_ibase.pri

ищем строку

!contains(LIBS, .*gds.*):!contains(LIBS, .*libfb.*):LIBS += -lgds

изменяем ее на следующую

!contains(LIBS, .*gds.*):!contains(LIBS, .*lfb.*):LIBS += -lgds

После этого собираем и устанавливаем драйвер

<QtPath>/Qt/5.7/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include/firebird" "LIBS+=-L/usr/lib64 -lfbclient" ibase.pro
make
make install

Проверка установленных драйверов

Для проверки установленных драйверов можно создать консольный проект Qt, в PRO-файле которого необходимо указать следующие модули Qt:

QT += core sql

main.cpp

Содержимое main.cpp файла будет следующим:

#include <QCoreApplication>
#include <QtSql>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "Доступные драйверы:" << QSqlDatabase::drivers();

    return a.exec();
}

Вывод

В выводе qDebug() получаем информацию о доступных драйверах, среди которых должен быть драйвер QIBASE.

Доступные драйверы: ("QIBASE", "QSQLITE", "QMYSQL", "QMYSQL3", "QPSQL", "QPSQL7")

Комментарии

Комментарии

Только авторизованные пользователи могут оставлять комментарии.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь
21 февраля 2018 г. 19:18
sentinel

Qt - Тест 001. Сигналы и слоты

  • Результат 78 баллов
  • Очки рейтинга 2
21 февраля 2018 г. 11:32
barilla

C++ - Тест 006. Перечисления

  • Результат 0 баллов
  • Очки рейтинга -10
21 февраля 2018 г. 11:31
barilla

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

  • Результат 91 баллов
  • Очки рейтинга 8
Последние комментарии
21 февраля 2018 г. 8:37
EVILEG

Qt/C++ - Урок 027. Полиморфизм в Qt на примере геометрических фигур в QGraphicsScene

Добрый день! 1) Эллипс можно реализовать так void Ellipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){ painter->setPen(QPen(...

20 февраля 2018 г. 22:10
Log159

Qt/C++ - Урок 027. Полиморфизм в Qt на примере геометрических фигур в QGraphicsScene

Здравствуйте! В программировании новичок и есть пара вопросов. Буду очень благодарен за ответ. Не совсем понимаю как: 1) реализовать подобным образом рисование эллипса(конкре...

18 февраля 2018 г. 14:42
EVILEG

QML - Урок 019. Navigation Drawer в Qt Qml Android

Да, теперь представляю, как то работает. Согласен, ваша правка определённо к месту здесь.

18 февраля 2018 г. 14:29
Yagiza

QML - Урок 019. Navigation Drawer в Qt Qml Android

Это как раз мой Use Case, потому-то я и задал тут вопрос. Дело в том, что я использую Ваш Dawer не только для главного меню приложения, но и для контекстного меню элементов ListView.

Сейчас обсуждают на форуме
21 февраля 2018 г. 22:19
vitaliy_antipov

Проблема с ComboBox

Спасибо за ответы, есть над чем подумать

21 февраля 2018 г. 13:26
sol11

Qtableviev после сортировки

Спасибо, всё заработало :) Единственное вот тут row на id поменял и всё круто :)) if(id == -1){ model->insertRow(model->rowCount(QModelIndex())); map...

20 февраля 2018 г. 13:18
alex_lip

Разбить один qml файл на несколько составляющих

Да спасибо. Просто после необходимости специфичных названий для файла - стараюсь обращать внимание на любую мелочь.

20 февраля 2018 г. 8:13
EVILEG

Передача файлов в django минуя временные папки django и nginx

Тогда я даже и не знаю, прошерстил документацию, но там нет информармации о возможности отключения сохранения временных файлов. Как я понял временные файлы используются, когда тело запро...

18 февраля 2018 г. 12:34
EVILEG

QGraphicsView

Добрый день!QGraphicsView - это виджет, а значит, что в качестве парента для него выступает QWidget, а не QObject.То есть из ошибок, которые сразу бросаются в глаза в этом коде, здесь прису...