Название: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 11, 2013, 16:53 Пытаюсь скомпилировать следующим образом:
>cd C:\Qt\Qt5.0.1\5.0.1\src\qtbase\src\sql\ C:\Qt\Qt5.0.1\5.0.1\Src\qtbase\src\sql>qmake -o Makefile <INCLUDEPATH+=C:\MySQL\include> <LIBS+=C:\MySQL\lib\opt\libmysql.lib> sql.pro Project MESSAGE: C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\syncqt.bat -module QtSql -mk specsdir C:\Qt\Qt5.0.1\5.0.1\mingw47_32/mkspecs -outdir C:/Qt/Qt5.0.1/5.0.1/Src/ qtbase C:/Qt/Qt5.0.1/5.0.1/Src/qtbase "perl.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Project ERROR: Failed to run: C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\syncqt.bat -mod ule QtSql -mkspecsdir C:\Qt\Qt5.0.1\5.0.1\mingw47_32/mkspecs -outdir C:/Qt/Qt5.0 .1/5.0.1/Src/qtbase C:/Qt/Qt5.0.1/5.0.1/Src/qtbase ---- Установил себе active perl, но результат не изменился. Пробовал найти уже скомпилированные драйвера. Скачал драйвера вроде qsqlmysql4.dll, закинул их все в папку sqldrivers в проект по мануалу вот этому http://buldin.org/?p=31. Также драйвер libmySQL.dll добавил в папку с приложением. Проверяю так: Код: if (!QSqlDatabase::drivers().contains("QMYSQL")) Подскажите пожалуйста, что я не так делаю? Мне нужна поддержка MySQL. Обязательно ли для этого компилировать драйвер или можно скачать готовый? Как его подключить в таком случае??? Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Alex Custov от Апрель 11, 2013, 17:12 Скачал драйвера вроде qsqlmysql4.dll Это драйвер от Qt4, он не будет работать. Установленный Perl в PATH есть? Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 11, 2013, 17:15 Установленный Perl в PATH есть? Имя переменной: perlЗначение переменной: C:\Perl\site\bin;C:\Perl\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Alex Custov от Апрель 11, 2013, 17:22 ещё непонятно зачем угловые скобки в строке с qmake (<INCLUDEPATH+=....)
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Alex Custov от Апрель 11, 2013, 17:23 Установленный Perl в PATH есть? Имя переменной: perlЗначение переменной: C:\Perl\site\bin;C:\Perl\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin И если ввести в консоли perl.exe, то он нормально запустится? Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 11, 2013, 19:06 И если ввести в консоли perl.exe, то он нормально запустится? Если вводить в виндовской cmd - нормальноЕсли в Qt-шной - "perl.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 11, 2013, 22:24 Хорошо, допустим я могу эти драйвера в интернете скачать и не заморачиваться с компиляцией?
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Alex Custov от Апрель 11, 2013, 22:25 Хорошо, допустим я могу эти драйвера в интернете скачать и не заморачиваться с компиляцией? Да. Мажорная версия Qt и используемый компилятор должны совпадать. Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 11, 2013, 22:33 Да. Мажорная версия Qt и используемый компилятор должны совпадать. Заранее огромное спасибо Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 07:46 Пробовал собрать по инструкции вот так:
cd C:\Qt\Qt5.0.1\5.0.1\Src\qtbase\src\plugins\sqldrivers\mysql >qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro никаких ошибок не выдается. но следующий шаг: >nmake "nmake" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Я уже в тупике если честно. Что я делаю не так? Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Bepec от Апрель 12, 2013, 07:59 nmake нужно набирать в командной строке VS. Пуск -> Microsoft VS -> tools-> command promt.
PS я удивлён очень сильно чтобы собрать нормальную библиотеку или ещё что под винду. необходимо танцы плясать :D Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 11:50 nmake нужно набирать в командной строке VS. Пуск -> Microsoft VS -> tools-> command promt. Прошу прощения, значит я не так понял ситуацию. У меня установлен Qt 5.0.1 вместе с Qt creator и mingw47_32. PS я удивлён очень сильно чтобы собрать нормальную библиотеку или ещё что под винду. необходимо танцы плясать :D Я пробовал уже по нескольким мануалам и даже скачивал драйвера, которые уже кто-то до меня скомпилировал, но то ли версии не подошли то ли еще что-то, но не могу заставить работать программу. Мне выдается: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 11:56 Пробовал делать по мануалу http://www.doc.crossplatform.ru/qt/4.3.2/sql-driver.html
Цитата: Если вы используете компилятор не от Microsoft, замените nmake на make. Результат: >make "make" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Такое ощущение, что мой ноутбук проклят >_____< Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Bepec от Апрель 12, 2013, 12:07 Такое ощущение, что у вас не прописаны переменные окружения :D
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Alex Custov от Апрель 12, 2013, 13:16 Цитата: Если вы используете компилятор не от Microsoft, замените nmake на make. щущение, что мой ноутбук проклят >_____< Эти мануалописатели вообще не заморачиваются особенностями. В случае с mingw команда будет mingw32-make. В PATH, естественно, mingw должен быть. Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 14:24 Эти мануалописатели вообще не заморачиваются особенностями. В случае с mingw команда будет mingw32-make. В PATH, естественно, mingw должен быть. Огромное спасибо Вам!!! Ситуация определенно сдвинулась с мертвой точки. Я исправил незачащие ошибки сам - например, пути к файлам отличались от тех, где искал компилятор, но я просто скопировал файлы вручную и ошибки исчезли. Но теперь выдает это: ql -LC:\Qt\Qt5.0.1\5.0.1\mingw47_32\lib -lQt5Core.obj/release_shared/qsql_mysql.o:qsql_mysql.cpp:(.text+0x1ce): undefined reference to `mysql_stmt_insert_id@4'.obj/release_shared/qsql_mysql.o:qsql_mysql.cpp:(.text+0x209): undefined referen ce to `mysql_insert_id@4'.obj/release_shared/qsql_mysql.o:qsql_mysql.cpp:(.text+0x26c): undefined reference to `mysql_num_rows@4' и так далее еще добрых 30 строчек Я уже если честно не знаю, что и делать. Ребята, у кого Qt 5.0.1 & mingw47_32 пожалуйста поделитесь DLL-кой. Я из-за косяка с компиляцией не могу сдать работу - у меня все сделано под SQlite. Выручите пожалуйста Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: alex312 от Апрель 12, 2013, 14:59 если тебе не критичен компилятор, то переходи на msvc2010.
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 15:18 если тебе не критичен компилятор, то переходи на msvc2010. У меня просто диплом заказали и я делал его в Qt creator, поэтому о переходе подумаю, но работу эту надо тут доделать.Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: alex312 от Апрель 12, 2013, 16:00 Так есть же Qt5 скомпилированный msvc2010.
Надо будет установить или win32 SDK или VisualStudo Express и сооствествующую сборку Qt Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 16:12 Так есть же Qt5 скомпилированный msvc2010. тогда последний вопрос - а как там редактировать формы Qt? Есть средства вроде Qt Designer?Надо будет установить или win32 SDK или VisualStudo Express и сооствествующую сборку Qt И решится ли там вопрос с драйвером с MySQL из-за которого весь сыр-бор? Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: alex312 от Апрель 12, 2013, 16:17 И решится ли там вопрос с драйвером с MySQL из-за которого весь сыр-бор? должет :)тогда последний вопрос - а как там редактировать формы Qt? Есть средства вроде Qt Designer? Qt Desigber и QtCreator можно использовать с разными версиями QtНазвание: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 12, 2013, 18:08 Так есть же Qt5 скомпилированный msvc2010. Прошу прощения, я уточню http://www.cyberforum.ru/qt/thread340639.html - вот так надо настраивать? Надо будет установить или win32 SDK или VisualStudo Express и сооствествующую сборку Qt Visual Studio 2010 я уже скачал Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: alex312 от Апрель 12, 2013, 18:19 Прошу прощения, я уточню http://www.cyberforum.ru/qt/thread340639.html - вот так надо настраивать? 1 C официального сайта http://qt-project.org/downloads качаеш версию Qt 5.0.2 for Windows 32-bit (VS 2010, 485 MB).2 Устанавливаеш. 3 Пользуешся. 4 ? ? ? 5 PROFIT Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 13, 2013, 11:55 1 C официального сайта http://qt-project.org/downloads качаеш версию Qt 5.0.2 for Windows 32-bit (VS 2010, 485 MB). 2 Устанавливаеш. 3 Пользуешся. 4 ? ? ? 5 PROFIT Скачал и установил VS Установил Qt for windows Установил QT VS add-in В настройках VS в меню Qt->Qt options указал path C:\Qt5\5.0.2\msvs2010\ Компилю приложение - все получается, но по-прежнему выдает надпись о том, что MYSQL драйвер отсутствует Код: if (!QSqlDatabase::drivers().contains("QMYSQL")) Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Mikhail от Апрель 13, 2013, 13:17 Ну а драйвер Qt для MySQL ты все таки откомпилировал или как?
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 13, 2013, 14:47 Ну а драйвер Qt для MySQL ты все таки откомпилировал или как? Так а разве для VS они не идут сразу скомпилированные?Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 13, 2013, 15:11 Пробовал скомпилить так:
открываю командную строку VS set QTDIR=c:\qt5\5.0.2\ set path=%path%;%QTDIR%\msvc2010\bin cd c:\qt5\5.0.2\ configure -mp -nomake examples -nomake demos -no-qt3support Выдает: C:\Qt5\5.0.2>configure -mp -nomake examples -nomake demos -no-qt3support "configure" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Mikhail от Апрель 13, 2013, 15:42 Скорее всего они не откомпилированы.
Посмотри наличие dll в имени которой есть mysql в каталоге plugins/sqldrivers. Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Mikhail от Апрель 13, 2013, 15:47 Да и еще заметь что у тебя нет configure. configure есть в исходниках Qt. Я бы рекомендовал скачать исходники Qt.
И спокойно откомпилировать себе Qt с нужными теде опциями. В том числе и с поддержкой MySQL. В readme все прекрасно описано. Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 13, 2013, 20:51 Да и еще заметь что у тебя нет configure. configure есть в исходниках Qt. Я бы рекомендовал скачать исходники Qt. И спокойно откомпилировать себе Qt с нужными теде опциями. В том числе и с поддержкой MySQL. В readme все прекрасно описано. Компилирую теперь так: set QTDIR=c:\qt5\5.0.2\ path=%path%;%QTDIR%\msvc2010\bin в path сваливаю все библиотеки MySQL cd C:\Qt5\5.0.2\Src\qtbase configure -mp -qt-sql-mysql -no-opengl -no-openvg все нормально конфигурируется nmake после этого минут 10 что-то хрустит и вот что выдает в итоге: Создается библиотека ..\..\lib\Qt5Sqld.lib и объект ..\..\lib\Qt5Sqld.exp qsqldatabase.obj : error LNK2001: неразрешенный внешний символ ""public: static struct QMetaObject const QMYSQLDriver::staticMetaObject" (?staticMetaObject@QMYS QLDriver@@2UQMetaObject@@B)" qsqldatabase.obj : error LNK2019: ссылка на неразрешенный внешний символ "public : __thiscall QMYSQLDriver::QMYSQLDriver(class QObject *)" (??0QMYSQLDriver@@QAE@ PAVQObject@@@Z) в функции "public: void __thiscall QMYSQLDriver::`default constr uctor closure'(void)" (??_FQMYSQLDriver@@QAEXXZ) ..\..\lib\Qt5Sqld.dll : fatal error LNK1120: 2 неразрешенных внешних элементов NMAKE : fatal error U1077: "C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN \link.EXE" : возвращенный код "0x460" Stop. NMAKE : fatal error U1077: "C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN \nmake.exe" : возвращенный код "0x2" Stop. NMAKE : fatal error U1077: cd : возвращенный код "0x2" Stop. NMAKE : fatal error U1077: cd : возвращенный код "0x2" Stop. честно, я уже даже не знаю, что еще можно сделать Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Mikhail от Апрель 13, 2013, 22:05 А указать включаемые файды MySQL не забыл?
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: alex312 от Апрель 13, 2013, 22:25 Инструкция с картинками - https://docs.google.com/document/d/13JP-nhMTLGLGEY5ECRZEsHrGoi2oe82gMi_XJ0pcLZY/edit?usp=sharing
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: qwyllum от Апрель 14, 2013, 09:28 Инструкция с картинками - https://docs.google.com/document/d/13JP-nhMTLGLGEY5ECRZEsHrGoi2oe82gMi_XJ0pcLZY/edit?usp=sharing Огромное Вам спасибо!!!! Все наконец-то заработало. Я от безысходности даже в техподдержку вконтакте написал)) (http://s2.ipicture.ru/uploads/20130414/Aseui2Mg.jpg) (http://s2.ipicture.ru/) Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: magoldnew от Апрель 27, 2013, 16:25 Решение есть тут http://seppemagiels.com/blog/create-mysql-driver-qt5-windows (http://seppemagiels.com/blog/create-mysql-driver-qt5-windows), я и под 5.0.1 сделал и под 5.0.2, mysql 5.6.10, 5.0.1 уже удалил, другие могу выслать.
Название: Re: Не получается скомпилировать драйвер MySQL Отправлено: Doranych от Июль 18, 2013, 13:25 У меня возникли те же проблемы. Я установил Qt 5.1.0 и попытался сделать тоже самое, что написано здесь (https://docs.google.com/document/d/13JP-nhMTLGLGEY5ECRZEsHrGoi2oe82gMi_XJ0pcLZY/edit).
Однако компилятор все равно ругается на отсутствие mysql.h. Может кто подскажет, где его можно достать и положить в нужную папку? |