Версия для печати темы
Форум на CrossPlatform.RU _ Qt Разработка баз данных _ Ubuntu.qt 4.6.0 + qt Creator1.3 + mysql. собрать драйвер.
Автор: fe120 6.1.2010, 20:03
Всем доброго времени суток.
И так суть в следующем:
Был скачан http://qt.nokia.com/downloads/sdk-linux-x11-64bit-cpp, были проделаны следующие дейстивия:
chmod u+x qt-sdk-linux-x86_64-opensource-2009.05.bin
./qt-sdk-linux-x86_64-opensource-2009.05.bin
Далее был установлен в папку /home/gudron/qtsdk-2009.05
Тут все прекрасно.
Далее по советам в инете, рекомендуется пересобрать qt, с поддержкой нужного драйвера:
$ cd /home/gudron/qtsdk-2009.05/qt
./configure -qt-sql-mysql -I /usr/include/mysql -L /usr/lib/mysql
make
sudo make install
После чего qt преспокойно устанавливается себе в /usr/local/Trolltech/Qt-4.6.0
Далее настраиваю в Инструменты -> Параметры, путь до qmake: /usr/local/Trolltech/Qt-4.6.0/bin/qmake
Создаю сам проект, QtWidget... в файл *.pro выглядит следующим образом:
TARGET = pass
TEMPLATE = app
QT +=sql
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
Далее есть функция:
#include "widget.h"
#include <QtSql>
#include "ui_widget.h"
....
void Widget::on_acept_clicked(){
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("kursach");
db.setUserName("gudron");
db.setHostName("localhost");
db.setPassword("123");
if(!db.open()) ui->lineEdit->setText(db.lastError().text());
else{
ui->lineEdit->setText("Connected");
ui->checkBox->setChecked(true);
}}
Срабатывает функция при нажатии кнопки, коннекты сигналов и слотов приводить не буду.
Да только консоль приложения дает следующее:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QSQLITE2 QODBC3 QODBC QPSQL7 QPSQL
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QSQLITE2 QODBC3 QODBC QPSQL7 QPSQL
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
Делал так же что рекомендуется на http://doc.crossplatform.ru/qt/4.3.2/sql-driver.html#how-to-build-the-qmysql-plugin-on-windows
Где и как проследит собрался ли драйвер. и правильно ли я его собирал.
Заранее всем спасибо. С наступающим вот вот Рождеством. И прошедшим новым годом. =))
Автор: fe120 6.1.2010, 22:43
что действительно порадовало, это то что после ./configure make && sudo make install проекты в стали компилироваться в разы быстрее...
Автор: fe120 6.1.2010, 23:51
Или хотя бы объясните, как правильно устанавливать qt creator с нуля, и собирать драйвер...
Автор: igor_bogomolov 7.1.2010, 0:26
Цитата(fe120 @ 6.1.2010, 20:03)
Где и как проследит собрался ли драйвер
В
QTDIR/plugings/sqldrivers должен появиться libqsqlmysql.so
Автор: fe120 7.1.2010, 1:58
Цитата(igor_bogomolov @ 7.1.2010, 1:26)
Цитата(fe120 @ 6.1.2010, 20:03)
Где и как проследит собрался ли драйвер
В
QTDIR/plugings/sqldrivers должен появиться libqsqlmysql.so
gudron@GUDRON:~/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql$ ls
main.cpp Makefile mysql.pro mysql.pro.user README
Очевидно не собрался.
у меня собственно вопрос...есть ведь реализация заголовков MySQL для чистого Си и для Си++, одна лежит в /usr/include/mysql, другая /usr/include/mysql++, какую необходимо указывать при
qmake "INCLUDEPATH+=/usr/include/????" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro
собственно при qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro, получаю следующее:
gudron@GUDRON:~/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql$ qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r"
mysql.proqt_config.prf:7: include(file) requires one argument.
/home/gudron/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql/mysql.pro:82: Parse Error ('first: all')
Error processing project file: mysql.pro
Автор: Litkevich Yuriy 7.1.2010, 3:06
строчка
Цитата(fe120 @ 6.1.2010, 23:03)
./configure -qt-sql-mysql
говорит собрать драйвер как часть Qt, а не в виде плагина (т.е. в нутрь QtSql4). Если ошибок не было при сборке Qt, то значит, что собралось. Только почему не видно в списке доступных драйверов, не знаю.
Было бы лучше собрать как плагин, т.к. он относительно не зависим и его можно пересобирать не трогая Qt.
Цитата(fe120 @ 7.1.2010, 4:58)
собственно при qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro, получаю следующее:
всё верно, у тебя Qt не сконфигурирована для сборки плагина MySql, нужно удалить всю сборку:
make confclean
а затем конфигурировать и собирать Qt снова
Автор: fe120 7.1.2010, 14:39
Произвел следующее:
cd /home/gudron/qtsdk-2009.05/qt
make confclean
./configure -plugin-sql-mysql -I /usr/include/mysql -L /usr/lib/mysql
make
sudo make install
//жду какое-то время пока выполниться каждая из выше перечисленных команд
cd /home/gudron/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql
qmake Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro -o
и ответом последней команды является все тоже:
gudron@GUDRON:~/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql$ qmake Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro -o
qt_config.prf:7: include(file) requires one argument.
/home/gudron/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql/Makefile:82: Parse Error ('first: all')
Error processing project file: Makefile
Может необходимо при ./configure указывать какой либо еще параметр акромя -plugin-sql-mysql
Автор: Litkevich Yuriy 7.1.2010, 14:46
Цитата(fe120 @ 7.1.2010, 17:39)
Может необходимо при ./configure указывать какой либо еще параметр акромя -plugin-sql-mysql
нет
fe120, покажи свой mysql.pro
Цитата(fe120 @ 7.1.2010, 17:39)
qmake Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro -o
эта строка меня смущает, после ключа
-o пусто, а поидее там должно быть то, что ты в качестве первого аргумента записал.
Вот мой пример для Firebird'а:
cd %QTDIR%\src\plugins\sqldrivers\ibase
qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_1\include" "LIBS+=F:\Firebird\Firebird_2_1\lib\fbclient.lib" ibase.pro
Автор: fe120 7.1.2010, 15:57
Довольно удивительно, но файл libsqlmysql.so, появляется в каталоге /usr/local/Trolltech/Qt-4.6.0/plugins/sqldrivers, после выполения sudo make install...
и без всяких запусков, qmake из каталога /home/gudron/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql/
мб, это так сказать улучшение в последней версии qt?? и все необходимое что было указано в при ./configure делается на этапах make и make install
все работает, сижу успешно играюсь, с select count(*) from ? таблиц в бд.
Надеюсь что и дальше все будет успешно. Спасибо за помощь.
Автор: Litkevich Yuriy 7.1.2010, 16:45
fe120, возможно, что обнаружив нужные библиотеки (указанные при конфигурации) configure создаст необходимые цели в make-файлах.
Покрайней мере на виндовозе плагин ODBC собирается автоматом при сборке Qt. Другие я не пробовал на этапе конфигурации подключать
Автор: igor_bogomolov 7.1.2010, 18:03
Цитата(fe120 @ 7.1.2010, 15:57)
Довольно удивительно, но файл libsqlmysql.so, появляется в каталоге /usr/local/Trolltech/Qt-4.6.0/plugins/sqldrivers, после выполения sudo make install...
и без всяких запусков, qmake из каталога /home/gudron/qtsdk-2009.05/qt/src/plugins/sqldrivers/mysql/
Плагин вы собрали здесь
Цитата
Делал так же что рекомендуется на http://doc.crossplatform.ru/qt/4.3.2/sql-d...ugin-on-windows
Распологается плагин после сборки, как я уже и писал, в директории
QTDIR/plugings/sqldrivers, где QTDIR - это путь то
qt. В вашем случае это
/home/gudron/qtsdk-2009.05/qt. После выполнения
sudo make install, плагин был скопирован в
/usr/local/Trolltech/Qt-4.6.0/plugins/sqldrivers
Автор: rrmini 16.4.2010, 16:40
делаю так:
CODE
./qt-sdk-linux-x86-opensource-2010.02.bin
cd /home/roman/qtsdk-2010.02/qt
./configure -plugin-sql-mysql -I /usr/include/mysql -L /usr/lib/mysql
получаю следующее:
CODE
...
Creating qmake. Please wait...
make: Цель `first' не требует выполнения команд.
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/roman/qtsdk-2010.02/qt/mkspecs/linux-g++.
Подскажите пожалуйста, чего у меня не хватает ?
Автор: Litkevich Yuriy 16.4.2010, 16:46
Цитата(rrmini @ 16.4.2010, 20:40)
./configure -plugin-sql-mysql -I /usr/include/mysql -L /usr/lib/mysql
плагин можно собрать не пересобирая Qt. Попробуй просто установить Qt, а затем собрать плагин
Автор: rrmini 16.4.2010, 17:35
Цитата(Litkevich Yuriy @ 16.4.2010, 17:46)
Цитата(rrmini @ 16.4.2010, 20:40)
./configure -plugin-sql-mysql -I /usr/include/mysql -L /usr/lib/mysql
плагин можно собрать не пересобирая Qt. Попробуй просто установить Qt, а затем собрать плагин
Установить Qt это не тоже самое :
./qt-sdk-linux-x86-opensource-2010.02.bin
??
Автор: Litkevich Yuriy 16.4.2010, 19:26
Цитата(rrmini @ 16.4.2010, 21:35)
Установить Qt это не тоже самое :
./qt-sdk-linux-x86-opensource-2010.02.bin
??
видимо да, я не знаю, как сейчас выглядит процесс установки Qt в Лине. Просто после попытки конфигурирования, при том не удачной. Ты уже испортил внутренности Qt, поэтому лучше начать с чистого листа.
Автор: rrmini 17.4.2010, 17:00
Цитата(Litkevich Yuriy @ 16.4.2010, 20:26)
Цитата(rrmini @ 16.4.2010, 21:35)
Установить Qt это не тоже самое :
./qt-sdk-linux-x86-opensource-2010.02.bin
??
видимо да, я не знаю, как сейчас выглядит процесс установки Qt в Лине. Просто после попытки конфигурирования, при том не удачной. Ты уже испортил внутренности Qt, поэтому лучше начать с чистого листа.
я тоже об этом думал. интересно, достаточно удалить каталог /home/qtsdk-2010.02/ или нужно еще какие-то действия произвести ?
Автор: Litkevich Yuriy 17.4.2010, 20:59
Цитата(rrmini @ 17.4.2010, 21:00)
достаточно удалить каталог /home/qtsdk-2010.02/
думаю, что в твоём случае достаточно
Автор: molchanoviv 19.4.2010, 7:26
Цитата(rrmini @ 16.4.2010, 18:35)
./qt-sdk-linux-x86-opensource-2010.02.bin
Всю тему не читал,но рискну предложить вместо этого выполнить sudo apt-get install qt4-название-пакета. В лине редко возникает острая необходимость собирать Qt или ставить ее с тролльтеховского инсталлятора.
Автор: BRE 19.4.2010, 7:31
В ubuntu в репозитории все еще qt-4.5.x лежит.
Если нужна 4.6, то лучше самому собрать.
Автор: molchanoviv 19.4.2010, 7:42
Ну я не в курсе как в убунте ибо пользуюсь сусей, но спрошу, а что в убунте нет сторонних репозиториев?
Автор: BRE 19.4.2010, 7:45
Цитата(molchanoviv @ 19.4.2010, 8:42)
Ну я не в курсе как в убунте ибо пользуюсь сусей, но спрошу, а что в убунте нет сторонних репозиториев?
Вот этого я не знаю, сам пользую Fedora.
Автор: rrmini 19.4.2010, 9:04
сделал так :
CODE
cd /home/roman/qtsdk-2010.02/bin/
./uninstall
затем установил из репов версию 4.5
собрал Sql Browser. Доступные драйвера : QSQLITE QMYSQL
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)