Seite 1 von 1

[gelöst] Qt + mysql auf mac os

Verfasst: 28. Februar 2011 15:45
von pfid
Hallo,

ich versuche gerade das mysql-plugin unter mac os zum laufen zu bekommen. XCode sowie das Qt-Komplettpaket wurde frisch installiert (da waren keine Qt-Quellen dabei). Habe daher die Quellen nochmal extra runtergeladen, und manuell nach /Developer/Applications/Qt/src entpackt (ich wollte nicht nochmal *alles* neu kompilieren).

Nun hab ich mir die mysql-dev lib runtergeladen, und erfolgreich das mysql-plugin kompiliert. Dabei ist eine libqsqlmysql_debug.dylib Datei rausgekommen, die auch gegen mysql gelinkt ist:

Code: Alles auswählen

libqsqlmysql_debug.dylib:
	/libqsqlmysql_debug.dylib (compatibility version 4.7.0, current version 4.7.0)
	libmysql.16.dylib (compatibility version 16.0.0, current version 16.0.0)
	QtSql.framework/Versions/4/QtSql (compatibility version 4.7.0, current version 4.7.0)
	QtCore.framework/Versions/4/QtCore (compatibility version 4.7.0, current version 4.7.0)
	/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
Das Gerät hab ich nach /Developer/Applications/Qt/plugins/sqldrivers/ kopiert. Wie bekomme ich mein Qt-Projekt damit gelinkt? Kompilieren geht, aber er linkt nicht gegen das mysql-plugin.

Verfasst: 28. Februar 2011 16:26
von Christian81
Ein Plugin muss man nicht linken...

Verfasst: 28. Februar 2011 16:34
von pfid
Stimmt auch wieder. Wie und wo muss ich das unter Mac OS hinpacken?

Verfasst: 28. Februar 2011 16:41
von Christian81
Prinzipiell sollte das passen. Bringt also QSqlDatabase::drivers() kein mysql-Plugin zurück? Unter Windows muss das Plugin im Release-Modus gebaut sein wenn Qt auch im Release gebaut ist und umgekehrt - ggf. ist das bei MacOS auch so.

Verfasst: 1. März 2011 09:12
von pfid
Also, das liegt im Plugins-Ordner:

Code: Alles auswählen

mueller:~ $ ll /Developer/Applications/Qt/plugins/sqldrivers/
total 4088
drwxrwxr-x   7 root  admin   238B 28 Feb 14:45 .
drwxrwxr-x  12 root  admin   408B 10 Sep 18:19 ..
-rw-rw-r--   1 root  admin   1,0M 10 Sep 18:19 libqsqlite.dylib
lrwxr-xr-x   1 fial  admin    24B  1 Mär 09:16 libqsqlmysql.dylib -> libqsqlmysql_debug.dylib
-rwxr-xr-x   1 fial  admin   136K  1 Mär 09:16 libqsqlmysql_debug.dylib
-rw-rw-r--   1 root  admin   327K 10 Sep 18:19 libqsqlodbc.dylib
-rw-rw-r--   1 root  admin   430K 10 Sep 18:19 libqsqlpsql.dylib
Programm wird im Debug modus gebaut. Hier kommt der Fehler:

Code: Alles auswählen

      if (!db.isDriverAvailable("QMYSQL"))
         QMessageBox::information(&w, "Database", "QMYSQL is not available");

Verfasst: 2. März 2011 14:18
von pfid
Habs hinbekommen. Die runtergeladene mysql lib war 32bittig, ich brauchte aber 64bit. Nun funktionierts :)