Russian Qt Forum
Сентябрь 30, 2024, 18:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: cannot find -lmysql  (Прочитано 11626 раз)
Den2009
Гость
« : Сентябрь 30, 2010, 18:14 »

Решил начать осваивать базы данных, для начала попытался собрать пример из книги (архив прилагается)
компилятор выдает следующее:
Код:
Выполняется сборка проекта cdcollection...
Запускается: C:/MinGW/bin/mingw32-make.exe clean -w
mingw32-make: Entering directory `C:/cdcollection'
C:/MinGW/bin/mingw32-make -f Makefile.Release clean
mingw32-make[1]: Entering directory `C:/cdcollection'
del release\moc_artistform.cpp release\moc_mainform.cpp release\moc_trackdelegate.cpp
del release\artistform.o release\main.o release\mainform.o release\trackdelegate.o release\moc_artistform.o release\moc_mainform.o release\moc_trackdelegate.o
mingw32-make[1]: Leaving directory `C:/cdcollection'
C:/MinGW/bin/mingw32-make -f Makefile.Debug clean
mingw32-make[1]: Entering directory `C:/cdcollection'
del debug\moc_artistform.cpp debug\moc_mainform.cpp debug\moc_trackdelegate.cpp
del debug\artistform.o debug\main.o debug\mainform.o debug\trackdelegate.o debug\moc_artistform.o debug\moc_mainform.o debug\moc_trackdelegate.o
mingw32-make[1]: Leaving directory `C:/cdcollection'
mingw32-make: Leaving directory `C:/cdcollection'
ЌҐ г¤ Ґвбп ­ ©вЁ C:\cdcollection\debug\moc_artistform.cpp
ЌҐ г¤ Ґвбп ­ ©вЁ C:\cdcollection\debug\artistform.o
Завершено с кодом возврата 0.
Настройки не изменились, этап QMake пропускается.
Запускается: C:/MinGW/bin/mingw32-make.exe -w
mingw32-make: Entering directory `C:/cdcollection'
C:/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/cdcollection'
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\artistform.o artistform.cpp
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\main.o main.cpp
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\mainform.o mainform.cpp
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\trackdelegate.o trackdelegate.cpp
C:/Qt/4.6.0/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -D__GNUC__ -DWIN32 artistform.h -o release\moc_artistform.cpp
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\moc_artistform.o release\moc_artistform.cpp
C:/Qt/4.6.0/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -D__GNUC__ -DWIN32 mainform.h -o release\moc_mainform.cpp
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\moc_mainform.o release\moc_mainform.cpp
C:/Qt/4.6.0/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -D__GNUC__ -DWIN32 trackdelegate.h -o release\moc_trackdelegate.cpp
g++ -c -O2 -fno-exceptions -Wall -fno-rtti -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -DQT_NO_DYNAMIC_CAST -I"..\Qt\4.6.0\include\QtCore" -I"..\Qt\4.6.0\include\QtGui" -I"..\Qt\4.6.0\include\QtSql" -I"..\Qt\4.6.0\include" -I"..\Qt\4.6.0\include\ActiveQt" -I"release" -I"..\Qt\4.6.0\mkspecs\win32-g++" -o release\moc_trackdelegate.o release\moc_trackdelegate.cpp
g++ -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,windows -o release\cdcollection.exe release/artistform.o release/main.o release/mainform.o release/trackdelegate.o release/moc_artistform.o release/moc_mainform.o release/moc_trackdelegate.o -L"c:\Qt\4.6.0\lib" -lmingw32 -lqtmain -lQtSql -lQtGui -lmysql -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
c:/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: cannot find -lmysql
collect2: ld returned 1 exit status
mingw32-make[1]: Leaving directory `C:/cdcollection'
mingw32-make: Leaving directory `C:/cdcollection'
mingw32-make[1]: *** [release\cdcollection.exe] Error 1
mingw32-make: *** [release] Error 2
Завершено с кодом возврата 2.
Ошибка во время сборки проекта cdcollection
Во время выполнения сборки на этапе 'Make'

поиск в интернете ничего полезного не дал. перепробовал много чего, что советуют - безрезультатно
стоит 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++
Записан
crossly
Гость
« Ответ #1 : Сентябрь 30, 2010, 18:52 »

так добавь
Код:
LIBS+=-L<путь к libmysql>
Записан
Den2009
Гость
« Ответ #2 : Сентябрь 30, 2010, 21:06 »

добавил - тоже самое. просит lmysql, а такой библиотеки нет вообще
Записан
crossly
Гость
« Ответ #3 : Сентябрь 30, 2010, 21:13 »

а как же вы тогда собрали qt с ключом -qt-sql-mysql ??
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #4 : Сентябрь 30, 2010, 21:35 »

Скорее всего не собрал.
Кроме этого ключа необходимо при компиляции Qt указать путь к инклудам mysql и mysql.lib
Записан
Den2009
Гость
« Ответ #5 : Сентябрь 30, 2010, 21:37 »

да, вроде бы, нормально собралось, без ошибок
есть библиотека libmysql, прописываю к ней путь, а просит lmysql, которой нет
Записан
crossly
Гость
« Ответ #6 : Сентябрь 30, 2010, 21:42 »

-lmysql означает что будет произведен поиск библиотеки libmysql.a
Записан
Den2009
Гость
« Ответ #7 : Октябрь 01, 2010, 07:44 »

решил пересобрать кутэ, действительно собралось с ошибками.
вот скрин:
http://file.qip.ru/photo/sXmbfVzV/_2_online.html
в чем причина?
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #8 : Октябрь 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 и не скажешь
« Последнее редактирование: Октябрь 01, 2010, 11:56 от Hellraiser » Записан
crossly
Гость
« Ответ #9 : Октябрь 01, 2010, 13:12 »

+100
Записан
Den2009
Гость
« Ответ #10 : Октябрь 01, 2010, 13:45 »

делаю, как написано по ссылке, на стадии выполнения make появляется ошибка:
http://file.qip.ru/photo/BeuEJdX2/_3_online.html
в чем причина? QT в данный момент не собрана, может надо сначала ее собрать?
Записан
crossly
Гость
« Ответ #11 : Октябрь 01, 2010, 13:52 »

ну конечно нужно.... что  вы собираетесь делать с драйвером если у вас сама библиотека не собрана...

ну вообще на сколько я помню вы хотели статическую сборку с вкомпилированной поддержкой mysql?? . тогда вам нужно сделать точно так же как вы делали изначально... только добавить в configure пути к либам и хидерам mysql
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #12 : Октябрь 01, 2010, 14:01 »

Опередили  Смеющийся
Плагины собираются для динамической Qt. Для статика надо добавить пути при конфигурировании Qt:
Код:
configure <ключи конфигурации> -I "путь_к_заголовкам_MySQL" -L "путь_к_библиотекам_MySQL"
Надо учесть, что в папке MySql\Lib\opt релизные версии библиотек MySQL. Могу посоветовать для разработки использовать shared debug_and_release Qt, а для распространения - static release Qt (но это нарушает лицензионное соглашение, т.к. static разрешено только для Qt Commercial).
Записан
Den2009
Гость
« Ответ #13 : Октябрь 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, результатов никаких. поиск по интернету ничего не дал... где собака зарыта?
Записан
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #14 : Октябрь 02, 2010, 19:48 »

Ничего не правил, все собралось и работает. Решение для Windows и MinGW
1. Качаем исходники Qt 4.7.0 (qt-everywhere-opensource-src-4.7.0.zip) отсюда.
2. Для сборки с поддержкой MySQL достаточно клиента, взять можно отсюда.
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
set PATH=c:\Qt\4.7.0_static;%PATH%
set QMAKESPEC=win32-g++
cd c:\Qt\4.7.0_static
configure -release -static -I c:\mysql\include -L c:\mysql\lib -l mysql -nomake demos -nomake examples -developer-build -qt-sql-sqlite -qt-sql-odbc -qt-sql-mysql -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-qt3support -no-plugin-manifests -phonon -phonon-backend -audio-backend -webkit -script -scripttools -declarative
Дожидаемся окончания конфигурации и сборки qmake.exe. Начинаем сборку библиотек (и только их)
Код:
mingw32-make sub-src
7. Ооочень долго ждем. Проверяем работоспособность (не закрывая консоль)
Код:
cd demos\sqlbrowser
qmake
mingw32-make
У полученного sqlbrowser.exe остались зависимости только от libmysql.dll и mingwm10.dll
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.