Название: cannot find -lmysql Отправлено: Den2009 от Сентябрь 30, 2010, 18:14 Решил начать осваивать базы данных, для начала попытался собрать пример из книги (архив прилагается (http://file.qip.ru/file/r4ZqlS9a/cdcollection.html))
компилятор выдает следующее: Код: Выполняется сборка проекта cdcollection... поиск в интернете ничего полезного не дал. перепробовал много чего, что советуют - безрезультатно стоит QT4.6.0, собрана статически, со следующими ключами: Код: configure -release -static -nomake examples -qt-libjpeg -qt-zlib -qt-libpng -nomake demos -no-exceptions -no-style-cde -qt-sql-mysql -qt-sql-sqlite -no-style-cleanlooks -no-style-plastique -no-stl -no-rtti -no-qt3support -no-scripttools -platform win32-g++ Название: Re: cannot find -lmysql Отправлено: crossly от Сентябрь 30, 2010, 18:52 так добавь
Код: LIBS+=-L<путь к libmysql> Название: Re: cannot find -lmysql Отправлено: Den2009 от Сентябрь 30, 2010, 21:06 добавил - тоже самое. просит lmysql, а такой библиотеки нет вообще
Название: Re: cannot find -lmysql Отправлено: crossly от Сентябрь 30, 2010, 21:13 а как же вы тогда собрали qt с ключом -qt-sql-mysql ??
Название: Re: cannot find -lmysql Отправлено: Mikhail от Сентябрь 30, 2010, 21:35 Скорее всего не собрал.
Кроме этого ключа необходимо при компиляции Qt указать путь к инклудам mysql и mysql.lib Название: Re: cannot find -lmysql Отправлено: Den2009 от Сентябрь 30, 2010, 21:37 да, вроде бы, нормально собралось, без ошибок
есть библиотека libmysql, прописываю к ней путь, а просит lmysql, которой нет Название: Re: cannot find -lmysql Отправлено: crossly от Сентябрь 30, 2010, 21:42 -lmysql означает что будет произведен поиск библиотеки libmysql.a
Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 01, 2010, 07:44 решил пересобрать кутэ, действительно собралось с ошибками.
вот скрин: http://file.qip.ru/photo/sXmbfVzV/_2_online.html в чем причина? Название: Re: cannot find -lmysql Отправлено: Hellraiser от Октябрь 01, 2010, 11:24 Так и что там непонятного? Четко сказано, что невозможно найти mysql.h. Все последующие ошибки есть следствие первой.
Пути решения: 1. Установить клиента MySQL с Developer библиотеками. 2. Добавить путь к includ`ам MySQL при конфигурации Qt. Проще чем здесь http://doc.qt.nokia.com/4.6/sql-driver.html#how-to-build-the-qmysql-plugin-on-windows (http://doc.qt.nokia.com/4.6/sql-driver.html#how-to-build-the-qmysql-plugin-on-windows) и не скажешь Название: Re: cannot find -lmysql Отправлено: crossly от Октябрь 01, 2010, 13:12 +100
Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 01, 2010, 13:45 делаю, как написано по ссылке, на стадии выполнения make появляется ошибка:
http://file.qip.ru/photo/BeuEJdX2/_3_online.html в чем причина? QT в данный момент не собрана, может надо сначала ее собрать? Название: Re: cannot find -lmysql Отправлено: crossly от Октябрь 01, 2010, 13:52 ну конечно нужно.... что вы собираетесь делать с драйвером если у вас сама библиотека не собрана...
ну вообще на сколько я помню вы хотели статическую сборку с вкомпилированной поддержкой mysql?? . тогда вам нужно сделать точно так же как вы делали изначально... только добавить в configure пути к либам и хидерам mysql Название: Re: cannot find -lmysql Отправлено: Hellraiser от Октябрь 01, 2010, 14:01 Опередили ;D
Плагины собираются для динамической Qt. Для статика надо добавить пути при конфигурировании Qt: Код: configure <ключи конфигурации> -I "путь_к_заголовкам_MySQL" -L "путь_к_библиотекам_MySQL" Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 02, 2010, 09:02 при сборке с подключением mysql библиотек начало вываливаться с ошибками, как описано тут:
http://www.prog.org.ru/index.php?topic=9296.msg52880#msg52880 исправлял так же, но затем вывалилось с таким сообщением: http://file.qip.ru/photo/nMCpynnu/_4_online.html поправил makefile, результатов никаких. поиск по интернету ничего не дал... где собака зарыта? Название: Re: cannot find -lmysql Отправлено: Hellraiser от Октябрь 02, 2010, 19:48 Ничего не правил, все собралось и работает. Решение для Windows и MinGW
1. Качаем исходники Qt 4.7.0 (qt-everywhere-opensource-src-4.7.0.zip) отсюда (ftp://ftp.qt.nokia.com/qt/source/). 2. Для сборки с поддержкой MySQL достаточно клиента, взять можно отсюда (http://ftp.gwdg.de/pub/misc/mysql/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip). 3. Меняем расширение c:\mysql\lib\libmysql.lib на .a 4. Пусть исходники Qt находятся в c:\Qt\4.7.0_static и клиент MySQL в c:\mysql. 5. MinGW уже установлен ранее и прописан в PATH 6. Запускаем cmd.exe Код: set QTDIR=c:\Qt\4.7.0_static Код: mingw32-make sub-src Код: cd demos\sqlbrowser Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 03, 2010, 21:32 сборка заканчивается не успешно, выдает следующее:
http://file.qip.ru/photo/Ibt8avio/_5_online.html Название: Re: cannot find -lmysql Отправлено: crossly от Октябрь 03, 2010, 22:12 уберите phonon из конфигурации .... вы его с mingw не соберете...
Название: Re: cannot find -lmysql Отправлено: Hellraiser от Октябрь 04, 2010, 09:34 С патченым MinGW от нокии (из состава SDK) libphonon.a собрался, но примеры с фононом все равно не работают. Лучше убрать phonon и phonon-backend.
Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 04, 2010, 12:59 все равно не хочет собираться:
http://file.qip.ru/photo/sKaEUTGz/_6_online.html Название: Re: cannot find -lmysql Отправлено: Hellraiser от Октябрь 04, 2010, 13:44 Библиотека уже собрана, не собирается Assistant. Поэтому я и указал
Код: mingw32-make sub-src Название: Re: cannot find -lmysql Отправлено: crossly от Октябрь 04, 2010, 13:48 Цитировать Может пора уже научиться читать ошибки? +100!Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 04, 2010, 19:22 ошибки я читать умею, и понял,что дело в ассистенте... сборка - довольно таки долгий процесс, поэтому я и спросил, чтоб не пересобирать несколько раз из-за того, что я что-то сделал не так..
после ввода Код: mingw32-make sub-src Код: entering directory .... пример собрал - работает есть зависимость от mingwm10.dll и libmysql.dll можно ли как нибудь от нее избавиться? Название: Re: cannot find -lmysql Отправлено: Hellraiser от Октябрь 04, 2010, 21:42 От mingwm10.dll надо искать по форуму, было решение. От libmysql.dll - надо качать исходники (http://ftp.gwdg.de/pub/misc/mysql/Downloads/Connector-C/mysql-connector-c-6.0.2.zip), собирать их в статике. А потом пересобрать Qt. Только стоит ли оно этого? У меня простой пример из демок Qt при статической сборке давал в релизе ~10Мб. И это все ради одного файла? Есть sfx-архивы, инсталляторы. Опять же, нарушение лицензии.
Название: Re: cannot find -lmysql Отправлено: crossly от Октябрь 04, 2010, 22:08 никакого нарушения лицензии здесь нет... GPL и LGPL вполне можно линковать статически... просто при этом и исходники придется открыть...
Название: Re: cannot find -lmysql Отправлено: Den2009 от Октябрь 05, 2010, 15:26 От mingwm10.dll надо искать по форуму, было решение. От libmysql.dll - надо качать исходники (http://ftp.gwdg.de/pub/misc/mysql/Downloads/Connector-C/mysql-connector-c-6.0.2.zip), собирать их в статике. А потом пересобрать Qt. Только стоит ли оно этого? У меня простой пример из демок Qt при статической сборке давал в релизе ~10Мб. И это все ради одного файла? Есть sfx-архивы, инсталляторы. Опять же, нарушение лицензии. про то, как избавиться от зависимости от mingw32, я знаю, делал так, как описано тут (http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_Qt_%D0%B1%D0%B5%D0%B7_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%28MinGW%29), но почему-то не помогло, хотя, когда собирал до этого - все было нормуль. про libmysql - попробую как-нибудь на досуге, пока это не критично важно...всем спасибо за консультации |