Название: Ошибка при компиляции плагина mysql Отправлено: DenKor от Август 18, 2005, 13:04 У меня не получается собрать плагин для mysql под minigw32.
Привожу текст для версии 3.4.4 ============================================ mingw32-make.exe[1]: Leaving directory `D:/Qt/3.3.4/plugins/src' c:\dev-cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lmysql.lib collect2: ld returned 1 exit status mingw32-make.exe[3]: *** [..\..\..\sqldrivers\qsqlmysql.dll] Error 1 mingw32-make.exe[2]: *** [sub-mysql] Error 2 mingw32-make.exe[1]: *** [sub-sqldrivers] Error 2 mingw32-make.exe: *** [sub-plugins] Error 2 The build process failed! ============================================= Заголовочные файлы скопировал в папку D:/Qt/3.3.4/include Библиотеку libmysql.lib в папку D:/Qt/3.3.4/lib. Обозвал ее как mysql.lib (там еще остался libmysql.lib) Не помогает :evil: Версия MySQL - 4.1.13a-win32 (noinstall) Название: Ошибка при компиляции плагина mysql Отправлено: Admin от Август 18, 2005, 13:07 1. обзывать не надо
-lmysql.lib означает что ищет libmysql.lib 2. есть ключик у gcc -Lпуть к твоей либе посставь его правильно Название: Ошибка при компиляции плагина mysql Отправлено: jindos от Август 18, 2005, 13:15 А по моему не нужно расширение указывать: т.е. не -lmysql.lib , а -
-lmysql Название: Ошибка при компиляции плагина mysql Отправлено: Admin от Август 18, 2005, 13:49 точно
Название: Ошибка при компиляции плагина mysql Отправлено: DenKor от Август 18, 2005, 18:49 Покапавшись на форуме qtforum.org нашел следующее рабочее решение для MiniGW32 редакции Open Source.
Библиотека libmysql.lib, которая идет в комплекте с дистрибутивом MySQL подходит только для версии VC2003. Для MiniGW нужно делать свою библиотеку: 1. Выполняем команду dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib mysql.a -k 2. При сборке появяться сообщение о ненайденных прототипах вида mysql_close@4 Правим libmySQL.def подставляя вместо mysql_close нужное mysql_close@4. Выполняем данные действия для всех подобных прототипов, пока не будут выдаваться сообщения об ошибках линковки 3.Получаем правильную библиотеку mysql.a 4.Для редакции Open Source мне пришлось дополнительно править makefile, чтобы при сборке правильно находилась библиотека Вместо параметра -lmysql.lib я поставил полный путь к mysql.a LIBS = -L"F:\Qt\4.0.0\lib" -L"F:\Qt\4.0.0\lib" F:\Qt\4.0.0\lib\mysql.a -lQtCored4 -lQtSqld4 Название: Ошибка при компиляции плагина mysql Отправлено: Vadim от Сентябрь 01, 2005, 14:25 Цитата: "DenKor" Покапавшись на форуме qtforum.org нашел следующее рабочее решение для MiniGW32 редакции Open Source. Библиотека libmysql.lib, которая идет в комплекте с дистрибутивом MySQL подходит только для версии VC2003. Для MiniGW нужно делать свою библиотеку: 1. Выполняем команду dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib mysql.a -k 2. При сборке появяться сообщение о ненайденных прототипах вида mysql_close@4 Правим libmySQL.def подставляя вместо mysql_close нужное mysql_close@4. Выполняем данные действия для всех подобных прототипов, пока не будут выдаваться сообщения об ошибках линковки 3.Получаем правильную библиотеку mysql.a 4.Для редакции Open Source мне пришлось дополнительно править makefile, чтобы при сборке правильно находилась библиотека Вместо параметра -lmysql.lib я поставил полный путь к mysql.a LIBS = -L"F:\Qt\4.0.0\lib" -L"F:\Qt\4.0.0\lib" F:\Qt\4.0.0\lib\mysql.a -lQtCored4 -lQtSqld4 Правильно наверное надо выполнить команду: reimp libmysql.lib В итоге получаем уже правильный(c поправлеными именами функций) libmysql.a Обходимся и без правки makefile указывая в опциях configure -sql-plugin-mysql -I <path-mysql>\include -L <path-mysql>\lib\libmysql.a При таких опциях библиотека собирается и плагин mysql в том числе. Но проекты упорно не хотят видеть плагин mysql. Когда компилил Qt под VC6 то в папке с исполняемым файлом создавал папочку sqldrivers и ложил туда плагины mysql - все работало. Но под mingw это не проходит. Кто-то поборол эту проблему? Название: Ошибка при компиляции плагина mysql Отправлено: crocus от Октябрь 05, 2005, 05:11 Так чем вопрос решили
Название: Ошибка при компиляции плагина mysql Отправлено: DenKor от Октябрь 27, 2005, 14:41 Цитата: "Vadim" При таких опциях библиотека собирается и плагин mysql в том числе. Но проекты упорно не хотят видеть плагин mysql. Когда компилил Qt под VC6 то в папке с исполняемым файлом создавал папочку sqldrivers и ложил туда плагины mysql - все работало. Но под mingw это не проходит. Кто-то поборол эту проблему? Я падчил распространяюмую библиотеку на предмет поиска всех путей на путь в текущем каталоге. Там в тектсе была зашита константа кажись sqldrivers c путем на установленную библиотеку. Заменил ее на "./" Работает Название: Ошибка при компиляции плагина mysql Отправлено: BNN от Ноябрь 03, 2005, 09:12 пробую собрать плагин MySql для qt4.0.1.
выдается следующая ошибка: C:\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lmysql.lib collect2: ld returned 1 exit status mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql.dll] Error 1 mingw32-make[1]: Leaving directory `C:/Qt/4.0.1/src/plugins/sqldrivers/mysql' mingw32-make: *** [release] Error 2 Файл libmysql.lib в папке c:\qt\4.0.1\lib есть. также там находятся lmysql.lib (копия libmysql.lib), libmysql.a. Название: Ошибка при компиляции плагина mysql Отправлено: Admin от Ноябрь 03, 2005, 10:25 попробую добавить
-Lc:\qt\4.0.1\lib Название: Ошибка при компиляции плагина mysql Отправлено: BNN от Ноябрь 03, 2005, 10:58 Цитата: "Admin" попробую добавить -Lc:\qt\4.0.1\lib куда это добавитьjavascript:emoticon(':?:') Question Название: Ошибка при компиляции плагина mysql Отправлено: Admin от Ноябрь 03, 2005, 13:18 как ключик к gcc
Название: Ошибка при компиляции плагина mysql Отправлено: BNN от Ноябрь 03, 2005, 13:55 Сделал так:
Цитата: "DenKor" Покапавшись на форуме qtforum.org нашел следующее рабочее решение для MiniGW32 редакции Open Source. Библиотека libmysql.lib, которая идет в комплекте с дистрибутивом MySQL подходит только для версии VC2003. Для MiniGW нужно делать свою библиотеку: 1. Выполняем команду dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib mysql.a -k 2. При сборке появяться сообщение о ненайденных прототипах вида mysql_close@4 Правим libmySQL.def подставляя вместо mysql_close нужное mysql_close@4. Выполняем данные действия для всех подобных прототипов, пока не будут выдаваться сообщения об ошибках линковки 3.Получаем правильную библиотеку mysql.a 4.Для редакции Open Source мне пришлось дополнительно править makefile, чтобы при сборке правильно находилась библиотека Вместо параметра -lmysql.lib я поставил полный путь к mysql.a LIBS = -L"F:\Qt\4.0.0\lib" -L"F:\Qt\4.0.0\lib" F:\Qt\4.0.0\lib\mysql.a -lQtCored4 -lQtSql d4 муторно правда def файл ручками править. Но все работает (покрайней мере sqlbrowser конектится и базы видит) Щас со своей проги буду коннектится. про reimp все пишут , а где взять -то. у мня в mingw ее нет :( Название: Re: Ошибка при компиляции плагина mysql Отправлено: VAPerlin от Ноябрь 20, 2008, 21:26 муторно правда def файл ручками править. Но все работает (покрайней мере sqlbrowser конектится и базы видит) Щас со своей проги буду коннектится. про reimp все пишут , а где взять -то. у мня в mingw ее нет :( В состав пакета MinGW входит, в частности, mingw-utils. Там оно и лежит. Нужно ее скачать и распаковать куда следует. Название: Re: Ошибка при компиляции плагина mysql Отправлено: Mpa4Hu от Февраль 17, 2011, 14:49 когда я делаю reimp libmysql.lib, ну или все остальные вариации, у меня libmysql.a создаетса 0 кб
помогите пожалуста, либо скажыте что не так делаю, либо просто подкинте этот файл, мне очень нужен этот файл под MinGW |