Klasse hat funktioniert.
Ich danke dir.
Die erste richtige Hilfe in diesem Forum. So kann es weitergehen.
QT4 & MySQL keine Verbindung
qt version 4.1
Es schein mir wirklich etwas falsch zu sein ..... buggi.
ich habe alle header file von mysql 4.1 c:\mysql
new line ----------
cd %QTDIR%\src\plugins\sqldrivers\mysql
new line ----------
qmake -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\opt\LIBMYSQL.LIB" mysql.pro
new line ----------
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"C:/Qt/4.1.1/include/QtCore" -I"C:/Qt/4.1.1/include/QtSql" -I"C:/Qt/4.1.1/include" -I"C:/mysql/include" -I"C:/Qt/4.1.1/include/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:/Qt/4.1.1/mkspecs/win32-g++" -o tmp\obj\release_shared\main.o main.cpp
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"C:/Qt/4.1.1/include/QtCore" -I"C:/Qt/4.1.1/include/QtSql" -I"C:/Qt/4.1.1/include" -I"C:/mysql/include" -I"C:/Qt/4.1.1/include/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:/Qt/4.1.1/mkspecs/win32-g++" -o tmp\obj\release_shared\qsql_mysql.o ..\..\..\sql\drivers\mysql\qsql_mysql.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,C:\Qt\4.1.1\plugins\sqldrivers\libqsqlmysql.a -o "..\..\..\..\plugins\sqldrivers\qsqlmysql.dll" tmp\obj\release_shared\main.o tmp\obj\release_shared\qsql_mysql.o -L"C:\Qt\4.1.1\lib" -L"C:\Qt\4.1.1\lib" C:\mysql\lib\opt\LIBMYSQL.LIB -lQtSql4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
kommt durch ---- und dann kommet utf-8 encoding problemen...
da ich mysql alles auf utf-8 laufe lasse.... wie auf meinen linux server....
muss ich vielleicht die " libQtSql4.a " for dem koplilieren raus loeschen?...
die libqtmain.a habe ich prima gemacht im %QTDIR%\src\winmain
doch bei jedem mysql qt pro file kommt einfach...
:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin
-lQtSqld4
als test habe ich das qt projekt http://sourceforge.net/projects/otetsudaiqt
kompiliert mit dem selben result....
nun probiere ich eine normale console app mit mysql zu machen ohne
QMYSQLDriverPlugin um zu sehen ob eine verbindung kommt...
Es schein mir wirklich etwas falsch zu sein ..... buggi.
ich habe alle header file von mysql 4.1 c:\mysql
new line ----------
cd %QTDIR%\src\plugins\sqldrivers\mysql
new line ----------
qmake -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\opt\LIBMYSQL.LIB" mysql.pro
new line ----------
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"C:/Qt/4.1.1/include/QtCore" -I"C:/Qt/4.1.1/include/QtSql" -I"C:/Qt/4.1.1/include" -I"C:/mysql/include" -I"C:/Qt/4.1.1/include/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:/Qt/4.1.1/mkspecs/win32-g++" -o tmp\obj\release_shared\main.o main.cpp
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"C:/Qt/4.1.1/include/QtCore" -I"C:/Qt/4.1.1/include/QtSql" -I"C:/Qt/4.1.1/include" -I"C:/mysql/include" -I"C:/Qt/4.1.1/include/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:/Qt/4.1.1/mkspecs/win32-g++" -o tmp\obj\release_shared\qsql_mysql.o ..\..\..\sql\drivers\mysql\qsql_mysql.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,C:\Qt\4.1.1\plugins\sqldrivers\libqsqlmysql.a -o "..\..\..\..\plugins\sqldrivers\qsqlmysql.dll" tmp\obj\release_shared\main.o tmp\obj\release_shared\qsql_mysql.o -L"C:\Qt\4.1.1\lib" -L"C:\Qt\4.1.1\lib" C:\mysql\lib\opt\LIBMYSQL.LIB -lQtSql4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/Qt/4.1.1/src/plugins/sqldrivers/mysql'
kommt durch ---- und dann kommet utf-8 encoding problemen...
da ich mysql alles auf utf-8 laufe lasse.... wie auf meinen linux server....
muss ich vielleicht die " libQtSql4.a " for dem koplilieren raus loeschen?...
die libqtmain.a habe ich prima gemacht im %QTDIR%\src\winmain
doch bei jedem mysql qt pro file kommt einfach...
:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot fin
-lQtSqld4
als test habe ich das qt projekt http://sourceforge.net/projects/otetsudaiqt
kompiliert mit dem selben result....
nun probiere ich eine normale console app mit mysql zu machen ohne
QMYSQLDriverPlugin um zu sehen ob eine verbindung kommt...
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
mit einem test wie dieses unten ende funktionierts..... und verbindet...
auch mit mingw32-make...
Was meinst du mit debug version???
ich mache so wie es im assist steht... qt4.1
cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
nmake
was ist daran falsch?
mein nmake ist einen bat mit...
@echo off
mingw32-make %*
auch mit mingw32-make...
Was meinst du mit debug version???
ich mache so wie es im assist steht... qt4.1
cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
nmake
was ist daran falsch?
mein nmake ist einen bat mit...
@echo off
mingw32-make %*
Code: Alles auswählen
/*
Name: mysql.cpp
google => libmysql-4.1.13a-1sid.DevPak
*/
#include <windows.h>
#include <iostream>
#include <mysql/mysql.h>
using namespace std;
int main()
{
//connection params
char *host = "localhost";
char *user = "root";
char *pass = "password";
char *db = "mysql";
//sock
MYSQL *sock;
sock = mysql_init(0);
if (sock) cout << "sock handle ok!" << endl;
else {
cout << "sock handle failed!" << endl;
return EXIT_FAILURE;
}
if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0))
cout << "connection ok!" << endl;
else {
cout << "connection failed!" << endl;
return EXIT_FAILURE;
}
cout << "connection character set: " << mysql_character_set_name(sock) << endl;
/////system("PAUSE");
mysql_close(sock);
return EXIT_SUCCESS;
}
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
hmmm du hast recht im pro file... ist am ende....BartSimpson hat geschrieben:-lQtSqld4 ist die Debug Version von Qt. was nur gehen kann, wenn du auch eine Debugversion von Qt gebaut hast.
QT += sql
CONFIG+=debug
Gut ich bin hartnackick ... ich baue den qt 4.1 neu mit debug....
auf meine 2en platte (ubuntu) habe deb qt 4.1 nur mit configure && make && make install uebersetzt ... ich bin gespant ob bei window ein configure.exe - help kompt
Hallo,
das Problem hatte ich auch (Can't create TCP/IP socket ) und konnte es so lösen:
1) In der *.pro folgende lib dazu: LIBS += WS2_32.lib
2) Dateien includen: #include <windows.h> #include <winsock.h>
3) Vor der Verbindung folgendes ausführen: WSADATA wsadata; und WSAStartup(0x0202, &wsadata);
Gruß
Marco812
das Problem hatte ich auch (Can't create TCP/IP socket ) und konnte es so lösen:
1) In der *.pro folgende lib dazu: LIBS += WS2_32.lib
2) Dateien includen: #include <windows.h> #include <winsock.h>
3) Vor der Verbindung folgendes ausführen: WSADATA wsadata; und WSAStartup(0x0202, &wsadata);
Gruß
Marco812