crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Ubuntu.qt 4.6.0 + qt Creator1.3 + mysql. собрать драйвер.
fe120
  опции профиля:
сообщение 6.1.2010, 20:03
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 6.1.2010
Пользователь №: 1354

Спасибо сказали: 1 раз(а)




Репутация:   0  


Всем доброго времени суток.
И так суть в следующем:
Был скачан Qt SDK for Linux/X11 64-bit** (444 MB), были проделаны следующие дейстивия:
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-d...ugin-on-windows

Где и как проследит собрался ли драйвер. и правильно ли я его собирал.
Заранее всем спасибо. С наступающим вот вот Рождеством. И прошедшим новым годом. =))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fe120
  опции профиля:
сообщение 6.1.2010, 22:43
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 6.1.2010
Пользователь №: 1354

Спасибо сказали: 1 раз(а)




Репутация:   0  


что действительно порадовало, это то что после ./configure make && sudo make install проекты в стали компилироваться в разы быстрее...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fe120
  опции профиля:
сообщение 6.1.2010, 23:51
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 6.1.2010
Пользователь №: 1354

Спасибо сказали: 1 раз(а)




Репутация:   0  


Или хотя бы объясните, как правильно устанавливать qt creator с нуля, и собирать драйвер...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 7.1.2010, 0:26
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Цитата(fe120 @ 6.1.2010, 20:03) *
Где и как проследит собрался ли драйвер
В QTDIR/plugings/sqldrivers должен появиться libqsqlmysql.so
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
fe120
  опции профиля:
сообщение 7.1.2010, 1:58
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 6.1.2010
Пользователь №: 1354

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата(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
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


строчка
Цитата(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
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 6.1.2010
Пользователь №: 1354

Спасибо сказали: 1 раз(а)




Репутация:   0  


Произвел следующее:
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
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(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
Сообщение #9


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 6.1.2010
Пользователь №: 1354

Спасибо сказали: 1 раз(а)




Репутация:   0  


Довольно удивительно, но файл 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
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


fe120, возможно, что обнаружив нужные библиотеки (указанные при конфигурации) configure создаст необходимые цели в make-файлах.
Покрайней мере на виндовозе плагин ODBC собирается автоматом при сборке Qt. Другие я не пробовал на этапе конфигурации подключать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.6.2024, 22:21