Название: Сборка MySQL плагина в Qt 4.1.0
Отправлено: bob от Январь 21, 2006, 20:40
Пытаюсь собрать плагин для MySQL и получаю ошибку C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lc:\mysql\lib\opt\libmysql.a collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysqld.dll] Error 1 mingw32-make[1]: Leaving directory `C:/Qt/4.1.0/src/plugins/sqldrivers/mysql' mingw32-make: *** [debug-all] Error 2
Название: Сборка MySQL плагина в Qt 4.1.0
Отправлено: Admin от Январь 22, 2006, 15:01
компилятор не может найти mysql libs
Название: Re: Сборка MySQL плагина в Qt 4.1.0
Отправлено: SLiDER от Январь 22, 2006, 16:35
Пытаюсь собрать плагин для MySQL и получаю ошибку Последние версии MySQL официально не поддерживают сборку под MinGW и соответственно нужной вам библиотеки, в соответствующем формате в поставке нет. Придется сделать ее самому. Примерно так: This is a small HOWTO, explaining on how to convert the MySQL libraries to something which is usable with MinGW.
1) Go to the MySQL lib directory:
# cd <path_where_mysql_is_installed>\lib\opt
2) Produce a DEF file:
# pexports libmysql.dll | sed "s/^_//" > libmysql.def
*NOTE: pexports and sed come with MinGW utilities and msys.
3) Create the MinGW import library:
# dlltool -U -d libmysql.def -l libmysql.lib.a
At this moment, a MinGW compatible library libmysql.lib.a is created. But, the headers are still written this way they are using the M$ calling convention. We need to change this.
4) Open the header <path_where_mysql_is_installed>\include\mysql.h and change the following around line 44:
Change:
#define STDCALL __stdcall
into:
#undef STDCALL #define STDCALL
*NOTE: The following is more a hack instead of a solution. Maybe you can come up with a cleaner patch. Use some extra #ifdef's or something ...
Now, we will build the Qt MySQL plugin using MinGW.
5) Go to the Qt MySQL plugin source directory:
# cd <path_where_qt_is_installed>\src\plugins\sqldrivers\mysql
6) Launch qmake to generate the Makefile
# qmake -o Makefile "INCLUDEPATH+=<path_where_mysql_is_installed>\include" "LIBS+=-L<path_where_mysql_is_installed>\lib\opt" mysql.pro
7) Build the plugin
# make
PS: I have tried the above for MySQL 4.1 (4.1.12a) and OpenSource Win32 Qt4.
Данный способ был обнаружен на каком-то буржуйском форуме и принадлежит некоему Bert Wizzy. Сам этим пользовался. Работает. Но от MySQL теперь уже, по разным причинам, отказались, в пользу Postgre.
Название: Сборка MySQL плагина в Qt 4.1.0
Отправлено: Nikol от Март 21, 2006, 23:44
угу так и есть, только мне надо было из команды
dlltool -U -d libmysql.def -l libmysql.lib.a
-U убрать потому что -U добавляет "_" перед функциями в qtmysql.dll(вроде так если название не спутал чуть), а в libMysql.dll эти функции без подчеркивания, ну и соответственно их не находит.
я собирал Qt4.1.0+MySql4.1.16a+MinGW3.4.2
|