Название: Qt+mysql не компилится Отправлено: ZooKeeper от Ноябрь 02, 2009, 05:21 Понимаю что избито.
cd D:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql d:\Qt\2009.04\qt\bin\qmake -o Makefile "INCLUDEPATH+=c:\MySQL5\INCLUDE" "LIBS+=c:\MySQL5\LIB\OPT\LIBMYSQL.LIB" mysql.pro D:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>mingw32-make mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory `D:/Qt/2009.04/qt/src/plugins/sqldrivers/mys ql' g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -mthreads -Wl -shared -Wl,--out-implib,debug\libqsqlmysqld4.a -o debug\qsqlmy sqld4.dll debug/main.o debug/qsql_mysql.o debug/moc_qsql_mysql.o -L"d:\Qt\2009. 04\qt\lib" debug\qsqlmysqld_resource_res.o c:\MySQL5\LIB\OPT\LIBMYSQL.LIB -llibm ysql -lQtSqld4 -lQtCored4 c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot fin d -llibmysql collect2: ld returned 1 exit status mingw32-make[1]: *** [debug\qsqlmysqld4.dll] Error 1 mingw32-make[1]: Leaving directory `D:/Qt/2009.04/qt/src/plugins/sqldrivers/mysq l' mingw32-make: *** [debug] Error 2 Не пойму в чём дело. Спасите. Название: Re: Qt+mysql не компилится Отправлено: BRE от Ноябрь 02, 2009, 08:11 c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -llibmysql Линкер не может найти библиотеку libmysql.Название: Re: Qt+mysql не компилится Отправлено: Aleksey_Zh от Ноябрь 02, 2009, 08:17 libmysql.a создавал?
Название: Re: Qt+mysql не компилится Отправлено: NicK от Ноябрь 02, 2009, 16:25 Вот здесь http://wiki.qtcentre.org/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_MinGW (http://wiki.qtcentre.org/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_MinGW) есть подробное описание, но где взять этот reimp???
Его нет ни в комплекте с Qt, ни в mingw-utils. :( Название: Re: Qt+mysql не компилится Отправлено: lit-uriy от Ноябрь 02, 2009, 16:47 он в binutils находится Походу на reimp тихо все положили ни на сайте MinGW его не видно ни где-то ещё. Название: Re: Qt+mysql не компилится Отправлено: NicK от Ноябрь 02, 2009, 17:15 Тогда как люди собирают драйвер MySQL? Подскажите, пожалуйста.
Название: Re: Qt+mysql не компилится Отправлено: crocus от Ноябрь 03, 2009, 02:53 http://sourceforge.net/project/shownotes.php?release_id=126568
Название: Re: Qt+mysql не компилится Отправлено: ZooKeeper от Ноябрь 03, 2009, 04:25 Только хотел скинуть ссылку.
Скомпилировал я это горе.. на выходе .dll и .a Скопировал в папку plugins/sqldrivers PyQt - не видит. Как понял из манов, нужно туда положить .dll и .a и чтобы в ПУТИ был доступен libmysql.dll (он доступен). Может быть я что-то забыл.. Как проверить на каком этапе он эти dll отвергает? (версия не нравится, файла не видит..) Я хочу завести всё это дело для PyQt. Стоит QT SDK и PyQt. Исходники драйвера есть и тут PyQt4\src\plugins\sqldrivers\mysql\ и в папке c QT насколько я понимаю в PyQt уже входит своя версия QT, отличающаяся от той что у меня в SDK Qmake в свою очередь в PyQt не входит. Получается нужно искать в точности версию QT SDK, которая будет соответствовать версии, установленной в PyQT. Компилировать в нём модуль и копировать в папку с плагинами pyqt?.. Какая же всё-таки жесть... Название: Re: Qt+mysql не компилится Отправлено: lit-uriy от Ноябрь 03, 2009, 16:58 я с мускулем дел не имел, однако подобная процедура описывалась и для Firebird'a. Это оказалось устаревшим вариантом.
Свежий и рабочий получился такой: В каталоге F:\Firebird\Firebird_2_1\lib переименовываем fbclient_ms.lib в fbclient.lib Код т.е. никаких левых инструментов для преобразования не понадобилось. нужно было только взять файл lib созданый для визуал студии Может у тебя тоже есть разные lib-файлы ? Название: Re: Qt+mysql не компилится Отправлено: NicK от Ноябрь 19, 2009, 14:32 В общем, в моем случае решение было таким:
Код: cd C:\MySQL\include Все оказалось просто :-) Название: Re: Qt+mysql не компилится Отправлено: PavelDart от Ноябрь 19, 2009, 20:25 В общем, в моем случае решение было таким: Код: cd C:\MySQL\include Все оказалось просто :-) Сделал всё так же, применительно к своим путям, но у меня вот что получилось: Creating library file: e:\Qt\4.3.4\plugins\sqldrivers\libqsqlmysql4.a tmp/obj/release_shared/qsql_mysql.o(.text+0x4c):qsql_mysql.cpp: undefined reference to `mysql_character_set_name@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x184):qsql_mysql.cpp: undefined reference to `mysql_error@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x19a):qsql_mysql.cpp: undefined reference to `mysql_errno@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6d7):qsql_mysql.cpp: undefined reference to `mysql_stmt_error@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6eb):qsql_mysql.cpp: undefined reference to `mysql_stmt_errno@4' tmp/obj/release_shared/qsql_mysql.o(.text+0xa25):qsql_mysql.cpp: undefined reference to `mysql_stmt_data_seek@12' tmp/obj/release_shared/qsql_mysql.o(.text+0xa39):qsql_mysql.cpp: undefined reference to `mysql_stmt_fetch@4' tmp/obj/release_shared/qsql_mysql.o(.text+0xb13):qsql_mysql.cpp: undefined reference to `mysql_data_seek@12' tmp/obj/release_shared/qsql_mysql.o(.text+0xb2a):qsql_mysql.cpp: undefined reference to `mysql_fetch_row@4' tmp/obj/release_shared/qsql_mysql.o(.text+0xc8f):qsql_mysql.cpp: undefined reference to `mysql_stmt_fetch@4' tmp/obj/release_shared/qsql_mysql.o(.text+0xcd7):qsql_mysql.cpp: undefined reference to `mysql_fetch_row@4' tmp/obj/release_shared/qsql_mysql.o(.text+0xd3f):qsql_mysql.cpp: undefined reference to `mysql_num_rows@4' tmp/obj/release_shared/qsql_mysql.o(.text+0xd7a):qsql_mysql.cpp: undefined reference to `mysql_stmt_num_rows@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x1088):qsql_mysql.cpp: undefined reference to `mysql_fetch_lengths@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x179c):qsql_mysql.cpp: undefined reference to `mysql_stmt_num_rows@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x17b7):qsql_mysql.cpp: undefined reference to `mysql_num_rows@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x17fe):qsql_mysql.cpp: undefined reference to `mysql_insert_id@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x183d):qsql_mysql.cpp: undefined reference to `mysql_stmt_insert_id@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x191e):qsql_mysql.cpp: undefined reference to `mysql_errno@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x1936):qsql_mysql.cpp: undefined reference to `mysql_field_seek@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x1944):qsql_mysql.cpp: undefined reference to `mysql_fetch_field@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x19b4):qsql_mysql.cpp: undefined reference to `mysql_field_seek@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x21f9):qsql_mysql.cpp: undefined reference to `mysql_close@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x2b8c):qsql_mysql.cpp: undefined reference to `mysql_list_fields@12' tmp/obj/release_shared/qsql_mysql.o(.text+0x2bd5):qsql_mysql.cpp: undefined reference to `mysql_fetch_field@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x2c3c):qsql_mysql.cpp: undefined reference to `mysql_free_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x2db4):qsql_mysql.cpp: undefined reference to `mysql_query@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x2f74):qsql_mysql.cpp: undefined reference to `mysql_query@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x3134):qsql_mysql.cpp: undefined reference to `mysql_query@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x37b0):qsql_mysql.cpp: undefined reference to `mysql_real_escape_string@16' tmp/obj/release_shared/qsql_mysql.o(.text+0x41fc):qsql_mysql.cpp: undefined reference to `mysql_init@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x431c):qsql_mysql.cpp: undefined reference to `mysql_real_connect@32' tmp/obj/release_shared/qsql_mysql.o(.text+0x43d9):qsql_mysql.cpp: undefined reference to `mysql_select_db@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x4459):qsql_mysql.cpp: undefined reference to `mysql_get_client_version@0' tmp/obj/release_shared/qsql_mysql.o(.text+0x4473):qsql_mysql.cpp: undefined reference to `mysql_get_server_version@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x492c):qsql_mysql.cpp: undefined reference to `mysql_close@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5150):qsql_mysql.cpp: undefined reference to `mysql_list_tables@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x5183):qsql_mysql.cpp: undefined reference to `mysql_data_seek@12' tmp/obj/release_shared/qsql_mysql.o(.text+0x5191):qsql_mysql.cpp: undefined reference to `mysql_fetch_row@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5215):qsql_mysql.cpp: undefined reference to `mysql_free_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x537f):qsql_mysql.cpp: undefined reference to `mysql_stmt_result_metadata@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x539a):qsql_mysql.cpp: undefined reference to `mysql_num_fields@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5484):qsql_mysql.cpp: undefined reference to `mysql_fetch_field@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5683):qsql_mysql.cpp: undefined reference to `mysql_next_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x56a1):qsql_mysql.cpp: undefined reference to `mysql_store_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x56b0):qsql_mysql.cpp: undefined reference to `mysql_free_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x56ca):qsql_mysql.cpp: undefined reference to `mysql_next_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x58a2):qsql_mysql.cpp: undefined reference to `mysql_free_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x58c6):qsql_mysql.cpp: undefined reference to `mysql_stmt_close@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5ba0):qsql_mysql.cpp: undefined reference to `mysql_stmt_prepare@12' tmp/obj/release_shared/qsql_mysql.o(.text+0x5cad):qsql_mysql.cpp: undefined reference to `mysql_stmt_init@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5d67):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5d88):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x5fbe):qsql_mysql.cpp: undefined reference to `mysql_real_query@12' tmp/obj/release_shared/qsql_mysql.o(.text+0x6144):qsql_mysql.cpp: undefined reference to `mysql_store_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x616a):qsql_mysql.cpp: undefined reference to `mysql_field_count@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x618f):qsql_mysql.cpp: undefined reference to `mysql_field_count@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x61ed):qsql_mysql.cpp: undefined reference to `mysql_affected_rows@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6257):qsql_mysql.cpp: undefined reference to `mysql_fetch_field_direct@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x6874):qsql_mysql.cpp: undefined reference to `mysql_stmt_reset@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6c65):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6c80):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6cb0):qsql_mysql.cpp: undefined reference to `mysql_stmt_execute@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6dc5):qsql_mysql.cpp: undefined reference to `mysql_stmt_affected_rows@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6e0d):qsql_mysql.cpp: undefined reference to `mysql_stmt_bind_result@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x6e50):qsql_mysql.cpp: undefined reference to `mysql_stmt_attr_set@12' tmp/obj/release_shared/qsql_mysql.o(.text+0x6e72):qsql_mysql.cpp: undefined reference to `mysql_stmt_store_result@4' tmp/obj/release_shared/qsql_mysql.o(.text+0x6ebd):qsql_mysql.cpp: undefined reference to `mysql_stmt_bind_result@8' tmp/obj/release_shared/qsql_mysql.o(.text+0x7365):qsql_mysql.cpp: undefined reference to `mysql_stmt_bind_param@8' collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql4.dll] Error 1 mingw32-make[1]: Leaving directory `E:/Qt/4.3.4/src/plugins/sqldrivers/mysql' mingw32-make: *** [release] Error 2 [PavelDart] E:\Qt\4.3.4\src\plugins\sqldrivers\mysql$ echo %lib% C:\MinGW\lib;C:\MySQL\Server\lib\opt;O:\oraclexe\app\oracle\product\10.2.0\server\OCI\lib\MSVC;C:\MinGW\lib; [PavelDart] E:\Qt\4.3.4\src\plugins\sqldrivers\mysql$ сборка дебаг выдаёт это: C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lQtSqld4 collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysqld4.dll] Error 1 mingw32-make[1]: Leaving directory `E:/Qt/4.3.4/src/plugins/sqldrivers/mysql' mingw32-make: *** [Debug] Error 2 |