QT + MySQL brak połączenia z bazą danych

Odpowiedz Nowy wątek
2012-06-24 11:06

Rejestracja: 7 lat temu

Ostatnio: 1 rok temu

0

Witam wszystkich i proszę o pomoc w rozwiązaniu tego problemu.

Sprawa wygląda tak: Pracuje na Win7 64bit, mam zainstalowaną baze danych MySQL (najnowszą wersje ze strony mysql.com), QtSDK też najnowszą wersje. Chcę połączyć się za pomocą aplikacji z bazą danych.

plik projektu:

#-------------------------------------------------
#
# Project created by QtCreator 2012-06-20T22:44:09
#
#-------------------------------------------------

QT       += core
QT       += sql
QT       -= gui

TARGET = nienazwany
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

plik .cpp

#include <QtCore/QCoreApplication>
#include <QtSql>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    if (db.isDriverAvailable("QODBC")) 
        {
        qDebug()<<"Sterownik dostępny";
        }
    else
        {
        qDebug()<<"Brak sterownika";
        }

    db.setHostName("localhost\\MySQL55");
    db.setPort(3306);
    db.setDatabaseName("hagop");

    if(db.open())
    {
        qDebug() << "jest polaczenie";
        db.close();
    }
    else
    {
        qDebug() << "brak polaczenia - " << db.lastError();
    }

    return a.exec();
}

Po uruchomieniu programu otrzymuje:
user image

Ustawione tez ma DSN za pomocą ODBC32:
user image

Co robię źle że nie mogę się połączyć?

PS nie wiem dlaczego obrazki się nie załadowały, w podglądzie są.

edytowany 3x, ostatnio: hagop, 2012-06-24 11:13

Pozostało 580 znaków

2012-06-24 11:29

Rejestracja: 9 lat temu

Ostatnio: 9 godzin temu

Lokalizacja: Lublin

0

Po 1 to dodajesz bazę QODBC a nie QMySQL. Co wypluwa QSqlDatabase::drivers(); ?

Pozostało 580 znaków

2012-06-24 12:17

Rejestracja: 7 lat temu

Ostatnio: 1 rok temu

0

("QSQLITE", "QODBC3", "QODBC")

Nie mam takiego sterownika jak QMYSQL.

edytowany 1x, ostatnio: hagop, 2012-06-24 12:19

Pozostało 580 znaków

2012-06-24 13:15

Rejestracja: 9 lat temu

Ostatnio: 9 godzin temu

Lokalizacja: Lublin

0

Musisz sterownik dodać do Qt. Opisane jak to zrobić jest w dokumentacji: http://qt-project.org/doc/qt-[...]-the-qmysql-plugin-on-windows co prawda jest to dla wersji 5.0, ale w obecnej nie powinno to się różnić.

edytowany 1x, ostatnio: tomepaw, 2012-06-24 13:15

Pozostało 580 znaków

2012-06-24 15:40

Rejestracja: 7 lat temu

Ostatnio: 1 rok temu

0

W linku który mi dałeś jest sporo niejasności (jak dla mnie).
1.W kodzie: qmake "INCLUDEPATH+=D:\MySQL\include" "LIBS+=D:\MYSQL\MySQL Server <version>\lib\opt\libmysql.lib" mysql.pro (ścieżki moje) W katalogi MySQL nie ma katalogu include, taki katalog znajduje się mysql\mysql server 5.5

  1. Zmieniając te ścieżki wywala mi brak pliku mysql.pro.

Znalazłem http://ieatbinary.com/2011/07[...]upport-in-qt-sdk-for-windows/ coś takiego i postępując zgodnie z tym otrzymuję:

C:\Windows\system32>d:

D:\>set mysql=d:\MySQL\MySQL Server 5.5

D:\>cd QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\libmysql.lib" -o Makefile mysql.pro
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/QtSDK/QtSources/4.8.1/src/plugins/sqldrivers/mysql'
g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlmysqld4.a -o debug\qsqlmysqld4.dll debug/main.o debug/qsql_mysql.o debug/moc_qsql_mysql.o  -L"d:\QtSDK\Desktop\Qt\4.8.1\mingw\lib" debug\qsqlmysqld_
resource_res.o d:\MySQL\MySQL Server 5.5\lib\libmysql.lib -lQtSqld4 -lQtCored4
g++: d:\MySQL\MySQL: No such file or directory
g++: Server: No such file or directory
g++: 5.5\lib\libmysql.lib: No such file or directory
mingw32-make[1]: *** [debug\qsqlmysqld4.dll] Error 1
mingw32-make[1]: Leaving directory `D:/QtSDK/QtSources/4.8.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug] Error 2

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>
D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql> 

spróbowałem zrobić też tak:

Setting up environment for Qt usage...

C:\Windows\system32>d:

D:\>cd MySQL

D:\MySQL>dir
 Wolumin w stacji D nie ma etykiety.
 Numer seryjny woluminu: A49A-9A2A

 Katalog: D:\MySQL

2012-06-24  09:28    <DIR>          .
2012-06-24  09:28    <DIR>          ..
2012-06-24  09:27    <DIR>          Connector C 6.0.2
2012-06-24  09:27    <DIR>          Connector C++ 1.1.0
2012-06-24  09:28    <DIR>          Connector NET 6.5.4
2012-06-24  09:27    <DIR>          Connector ODBC 5.1.11
2012-06-24  09:28    <DIR>          MySQL Documentation 5.5.25
2012-06-24  09:26    <DIR>          MySQL Server 5.5
2012-06-24  09:27    <DIR>          MySQL Workbench CE 5.2.40
2012-06-24  09:28    <DIR>          Samples and Examples 5.5.25
               0 plik(ów)                  0 bajtów
              10 katalog(ów)  12 725 784 576 bajtów wolnych

D:\MySQL>dir /x
 Wolumin w stacji D nie ma etykiety.
 Numer seryjny woluminu: A49A-9A2A

 Katalog: D:\MySQL

2012-06-24  09:28    <DIR>                       .
2012-06-24  09:28    <DIR>                       ..
2012-06-24  09:27    <DIR>          CONNEC~1.2   Connector C 6.0.2
2012-06-24  09:27    <DIR>          CONNEC~1.0   Connector C++ 1.1.0
2012-06-24  09:28    <DIR>          CONNEC~1.4   Connector NET 6.5.4
2012-06-24  09:27    <DIR>          CONNEC~1.11  Connector ODBC 5.1.11
2012-06-24  09:28    <DIR>          MYSQLD~1.25  MySQL Documentation 5.5.25
2012-06-24  09:26    <DIR>          MYSQLS~1.5   MySQL Server 5.5
2012-06-24  09:27    <DIR>          MYSQLW~1.40  MySQL Workbench CE 5.2.40
2012-06-24  09:28    <DIR>          SAMPLE~1.25  Samples and Examples 5.5.25
               0 plik(ów)                  0 bajtów
              10 katalog(ów)  12 725 784 576 bajtów wolnych

D:\MySQL>set mysql=d:\MySQL\MYSQLS~1.5

D:\MySQL>cd..

D:\>cd QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\libmysql.lib" -o Makefile mysql.pro
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/QtSDK/QtSources/4.8.1/src/plugins/sqldrivers/mysql'
g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlmysqld4.a -o debug\qsqlmysqld4.dll debug/main.o debug/qsql_mysql.o debug/moc_qsql_mysql.o  -L"d:\QtSDK\Desktop\Qt\4.8.1\mingw\lib" debug\qsqlmysqld_
resource_res.o d:\MySQL\MYSQLS~1.5\lib\libmysql.lib -lQtSqld4 -lQtCored4
Creating library file: debug\libqsqlmysqld4.a
debug/qsql_mysql.o: In function `codec':
D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:223: undefined reference to `[email protected]'
debug/qsql_mysql.o: In function `qMakeError':
D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:234: undefined reference to `[email protected]'
D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:237: undefined reference to `[email protected]'
debug/qsql_mysql.o: In function `qMakeStmtError':
D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:309: undefined reference to `[email protected]'
D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:312: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:358: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:362: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:369: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:432: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:438: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:440: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:437: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:446: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:452: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:496: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:498: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:513: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:514: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:529: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:544: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:565: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:570: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:614: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:696: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:701: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:702: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:707: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:710: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:714: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:728: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:733: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:750: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:755: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:775: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:776: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:777: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:780: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:783: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:796: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:804: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:813: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:814: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:823: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:827: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:892: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:900: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:908: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:909: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:937: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:944: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:944: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1023: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1031: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1043: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1048: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1055: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1057: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1069: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1271: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1271: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1286: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1289: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1295: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1308: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1300: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1316: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1316: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1322: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1335: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1337: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1353: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1361: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1365: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1366: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1372: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1425: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1431: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1433: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1451: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1468: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1485: undefined reference to `[email protected]'
debug/qsql_mysql.o:D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql/../../../sql/drivers/mysql/qsql_mysql.cpp:1511: undefined reference to `[email protected]'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\qsqlmysqld4.dll] Error 1
mingw32-make[1]: Leaving directory `D:/QtSDK/QtSources/4.8.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug] Error 2

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql> 

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release"
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.
WARNING: (internal):1: Unescaped backslashes are deprecated.

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/QtSDK/QtSources/4.8.1/src/plugins/sqldrivers/mysql'
g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlmysqld4.a -o debug\qsqlmysqld4.dll debug/main.o debug/qsql_mysql.o debug/moc_qsql_mysql.o  -L"d:\QtSDK\Desktop\Qt\4.8.1\mingw\lib" debug\qsqlmysqld_
resource_res.o -llibmysql -lQtSqld4 -lQtCored4
d:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -llibmysql
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\qsqlmysqld4.dll] Error 1
mingw32-make[1]: Leaving directory `D:/QtSDK/QtSources/4.8.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug] Error 2

D:\QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql>

Zgodnie z tą instrukcją powinno to przebiegać bez błędów a u mnie kilka się wygenerowało.

edytowany 1x, ostatnio: hagop, 2012-06-24 15:48

Pozostało 580 znaków

2012-06-24 17:48

Rejestracja: 9 lat temu

Ostatnio: 9 godzin temu

Lokalizacja: Lublin

0

Swego czasu też straciłem nad tym trochę czasu. Zerknij do D:\QtSDK\QtSources\4.8.0\src\plugins\sqldrivers\mysql, z tego co pamiętam w jakiś sposób skompilowałem ten projekt (dołączając chyba pliki include z serwera MYSQL);

edytowany 1x, ostatnio: tomepaw, 2012-06-24 17:51

Pozostało 580 znaków

2012-06-24 22:02

Rejestracja: 7 lat temu

Ostatnio: 1 rok temu

0

Udało mi się skompilować sterownik (przyczyną był mysql server 64bit). Ale nadal mam problem z połączeniem się z bazą :(.

#include <QtCore/QCoreApplication>
#include <QtSql>
#include <QtDebug>
#include <QSqlDatabase>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug()<<QSqlDatabase::drivers();

    db.setHostName("localhost");
    db.setPort(3306);
    db.userName("hagop");
    db.setPassword("hagop");
    db.setDatabaseName("baza");

    if(db.open())
    {
        qDebug() << "jest polaczenie";
        db.close();
    }
    else
    {
        qDebug() << "brak polaczenia - " << db.lastError();
    }

    return a.exec();
}

Na serwerze założyłem konto login:hagop i pass:hagop oraz bazę danych o nazwie baza zawierającą jedna tabele. Program w takim stanie nie kompiluje się. Wywali mi błąd : D:\Qt\nienazwany-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug\..\nienazwany\main.cpp:15: błąd:no matching function for call to 'QSqlDatabase::userName(const char [6])'. Gdy db.userName i db.Password zostaną zahaszowane program kompiluje się i dostaje taki komunikat:

 ("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")
brak polaczenia -  QSqlError(1045, "QMYSQL: Unable to connect", "Access denied for user 'ODBC'@'localhost' (using password: NO)")

Pozostało 580 znaków

2012-06-24 22:19

Rejestracja: 9 lat temu

Ostatnio: 9 godzin temu

Lokalizacja: Lublin

0
 db.userName("hagop");

Skompilowało się? Powinno być db.setUserName("hagop"); no chyba, że popełniłeś literówkę :)

Pozostało 580 znaków

2012-06-24 23:24

Rejestracja: 7 lat temu

Ostatnio: 1 rok temu

1

Tak rzeczywiście pomyliłem się z tym UserName. Wszystko już działa poprawnie. Dziękuję za pomoc.

Dla następców podsumuję co zrobiłem:

  1. Instalacja MySQL server wersja 32bit (na wersji 64bit nie działa)
  2. Instalacja QT SDK
  3. Start -> Programy -> QT SDK -> Desktop -> Qt 4.8.1 for Desktop (MinGW)
  4. cd QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql\ (przechodzimy do tego katalogu)
  5. qmake "INCLUDEPATH+=d:\MYSQL\include" "LIBS+=d:\MYSQL\lib\libmysql.lib" -o Makefile mysql.pro (zainstalowałem serwer mysql bezpośrednio w katalogu MYSQL, żeby nie męczyć się z tymi ścieżkami). Wykonanie tej linii nie wywala żadnych błędów.
  6. mingw32-make (kompilacja bez żadnych błędów)
  7. qmake "INCLUDEPATH+=d:\MYSQL\include" "LIBS+=d:\MYSQL\lib\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release" (podobnie jak wcześniej bez żadnych błędów)
  8. mingw32-make (kompilacja bez żadnych błędów)
  9. Skopiowałem z katalogu debug i release (są one w QtSDK\QtSources\4.8.1\src\plugins\sqldrivers\mysql) pliki: libqsqlmysqld4.a, qsqlmysqld4.dll, libqsqlmysql4.a i qsqlmysql4.dll do katalogu: QtSDK\Desktop\Qt\4.8.1\mingw\plugins\sqldrivers.
  10. Skopiowałem plik libmysql.dll z katalogu instalacyjnego MYSQL do katalogu WINDOWS

Od tego momentu sterownik QMYSQL jest już obsługiwany. Można to sprawdzić z poziomu samplowego programy sqlbrowser.

Problem uznaję za rozwiązany a temat za zamknięty.

Pozostało 580 znaków

2012-06-25 00:16

Rejestracja: 9 lat temu

Ostatnio: 1 rok temu

0
hagop napisał(a):

Instalacja MySQL server wersja 32bit (na wersji 64bit nie działa)
no nie działa, nie działa i doszedłbyś do tego szybciej gdybyś z wyszukiwarki skorzystał ;)
tutaj masz link do tematu z zeszłego roku, w którym kiedyś o tym wspominałem. Co prawda czasy się zmieniły, wersje myslq'a oraz Qt również ale jak widać problemy dalej pozostały te same.


"..."
"odp"
"qtMaster"
edytowany 2x, ostatnio: matek3005, 2012-06-25 00:17

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0