Portál AbcLinuxu, 7. května 2025 21:37
Řešení dotazu:
Qt SDK v C:/QtSDK
a MySQL v C:/MySQLStačí oteřít Qt Command Prompt, který bývá součástí Qt SDK a obsahuje správně nastavené proměnné prostředí, v něm přejít do cesty kde je db driver, např.:
cd C:/QtSDK/QtSources/4.7.4/src/plugins/sqldrivers/mysqlpotom pomocí qmaku vytvoříš makefily pro zkompilování ovladače:
qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=C:/MySQL/lib/libmysql.lib" CONFIG+=release mysql.proa příkazem mingw32-make nebo nmake výsledek zkompiluješ, výhodnější je používat samozřejmě mingw, nmake se nevyplatí moc používat, pokud nemáš plné Visual Studio, pak jsou problémy s distribucí binárek
e:\Programy\QtSDK\Desktop\Qt\4.7.4\mingw\bin\qtenv2.bat cd e:\Programy\QtSDK\QtSources\4.7.4\src\plugins\sqldrivers\mysql qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib" "CONFIG+=release debug" mysql.pro e:\Programy\MinGW\bin\mingw32-make.exe pauseNakonec ještě vytvoená dllka musíš zkopírovat do e:\Programy\QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers\
qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib" "CONFIG+=release debug" mysql.propoužít samostatně
qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib" CONFIG+=release mysql.pro mingw32-makea
qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib" CONFIG+=debug mysql.pro mingw32-makeMěl by jsi z toho dostat několiv výstupů ve stylu :
mingw32-make -f Makefile.Release mingw32-make[1]: Entering directory `C:/QtSDK/QtSources/4.7.4/src/plugins/sqldrivers/mysql' g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PL UGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.7.4 \mingw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\include\QtSql" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\include" -I"c:\MySQL\include" -I"c:\QtSDK\Deskto p\Qt\4.7.4\mingw\include\ActiveQt" -I"release" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\mkspecs\default" -o release\main.o main.cpp C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGI N -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.7.4\mi ngw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\include\QtSql" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\include" -I"c:\MySQL\include" -I"c:\QtSDK\Desktop\Q t\4.7.4\mingw\include\ActiveQt" -I"release" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\mkspecs\default" -D__GNUC__ -DWIN32 ..\..\..\sql\drivers\mysql\qsql_mysql.cpp -o release\qsql_mysql.mocVýsledná dllka najdeš v podadresářích release a debug. Pokud ti kompilace vypíše nějakou chybu, pastni ji sem....
Kopírování qmaku je nesmysl, to jde normálně bez toho...zkus ty příkazy prostě pastnout postupně do té Qt Command Prompt, bez baťáků. Otvírat mysql.pro ve qtcreatoru je zbytečnost, ten qmake ti vytvoří soubor Makefile, Makefile.Release|Debug a ty pak používá mingw32-make ke zkompilování.
Pokud tam nemáš nějaké chyby, tak by z qmaku ani žádný výstup být neměl.
cd e:\Programy\QtSDK\QtSources\4.7.4\src\plugins\sqldrivers\mysql
qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib"
CONFIG+=release mysql.pro
mingw32-make
pause
vypis byl: http://www.2i.cz/6b9a85af7c
3.bat s kodem:
cd e:\Programy\QtSDK\QtSources\4.7.4\src\plugins\sqldrivers\mysql
qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib"
CONFIG+=debug mysql.pro
mingw32-make
pause
vypis byl: http://www.2i.cz/7a8b94be6d
Vytvorily se prazdne slozky Release a debug a soubory: Makefile, Makefile.debug, Makefile.release, qsqlmysql_resource.rc, qsqlmysqld_resource.rc
qmake.exe "INCLUDEPATH+=e:/Programy/MySQL/MySQL Server 5.5/include" "LIBS+=e:/Programy/MySQL/MySQL Server 5.5/lib/libmysql.lib" CONFIG+=release mysql.pro
Pokud bys to chtěl sestavovat v qtcreatoru tak toho souboru musíš přidat tyhle řádky (do mysql.pro), ty udávají kde se mají hledat knihovny a hlavičkové soubory, bez těch ten ovladač nejde zkompilovat ani slinkovat dohromady.
INCLUDEPATH+=e:/Programy/MySQL/MySQL\ Server\ 5.5/include
LIBS+=e:/Programy/MySQL/MySQL\ Server\ 5.5/lib/libmysql.lib
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.