crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> проблема с компиляцией mysql plugin, не получается скомпилировать модуль поддержки mysql
bop
  опции профиля:
сообщение 11.2.2008, 11:46
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 11.2.2008
Пользователь №: 90

Спасибо сказали: 0 раз(а)




Репутация:   0  


здравствуйте, помогите чайнику
обратил внимание что по умолчанию Qt не может загрузить драйвем mysql, как оказалось надо скомпилировать плюгин
пытаюсь скомпилировать плюгин

cd C:\qt\4.3.3\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=D:\Programs\mysql51\include" "LIBS+=D:\Programs\mysql51\lib\opt\libmysql.lib" mysql.pro
make


вот что получается:
CODE

Setting up a MinGW/Qt only environment...
-- QTDIR set to C:\Qt\4.3.3
-- PATH set to C:\Qt\4.3.3\bin
-- Adding C:\MinGW\bin to PATH
-- Adding C:\WINDOWS\System32 to PATH
-- QMAKESPEC set to win32-g++

C:\Qt\4.3.3>cd src\plugins\sqldrivers\mysql

C:\Qt\4.3.3\src\plugins\sqldrivers\mysql>qmake -o Makefile "INCLUDEPATH+=D:\Prog
rams\mysql51\include" "LIBS+=D:\Programs\mysql51\lib\opt\libmysql.lib" mysql.pro


C:\Qt\4.3.3\src\plugins\sqldrivers\mysql>make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Qt/4.3.3/src/plugins/sqldrivers/mysql'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,c:\Qt\4.3.3\plugins\sqldrivers\
libqsqlmysql4.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysql4.dll tmp/obj/release
_shared/main.o tmp/obj/release_shared/qsql_mysql.o tmp/obj/release_shared/moc_qs
ql_mysql.o -L"c:\Qt\4.3.3\lib" -L"c:\Qt\4.3.3\lib" tmp\obj\release_shared\qsqlm
ysql_resource_res.o D:\Programs\mysql51\lib\opt\libmysql.lib -lQtSql4 -lQtCore4
Creating library file: c:\Qt\4.3.3\plugins\sqldrivers\libqsqlmysql4.a
tmp/obj/release_shared/qsql_mysql.o(.text+0x4c):qsql_mysql.cpp: undefined refere
nce to `mysql_character_set_name@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x184):qsql_mysql.cpp: undefined refer
ence to `mysql_error@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x19a):qsql_mysql.cpp: undefined refer
ence to `mysql_errno@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6d7):qsql_mysql.cpp: undefined refer
ence to `mysql_stmt_error@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6eb):qsql_mysql.cpp: undefined refer
ence to `mysql_stmt_errno@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0xa25):qsql_mysql.cpp: undefined refer
ence to `mysql_stmt_data_seek@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0xa39):qsql_mysql.cpp: undefined refer
ence to `mysql_stmt_fetch@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0xb13):qsql_mysql.cpp: undefined refer
ence to `mysql_data_seek@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0xb2a):qsql_mysql.cpp: undefined refer
ence to `mysql_fetch_row@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0xc8f):qsql_mysql.cpp: undefined refer
ence to `mysql_stmt_fetch@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0xcd7):qsql_mysql.cpp: undefined refer
ence to `mysql_fetch_row@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0xd3f):qsql_mysql.cpp: undefined refer
ence to `mysql_num_rows@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0xd7a):qsql_mysql.cpp: undefined refer
ence to `mysql_stmt_num_rows@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x1088):qsql_mysql.cpp: undefined refe
rence to `mysql_fetch_lengths@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x179c):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_num_rows@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x17b7):qsql_mysql.cpp: undefined refe
rence to `mysql_num_rows@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x17fe):qsql_mysql.cpp: undefined refe
rence to `mysql_insert_id@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x183d):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_insert_id@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x191e):qsql_mysql.cpp: undefined refe
rence to `mysql_errno@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x1936):qsql_mysql.cpp: undefined refe
rence to `mysql_field_seek@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x1944):qsql_mysql.cpp: undefined refe
rence to `mysql_fetch_field@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x19b4):qsql_mysql.cpp: undefined refe
rence to `mysql_field_seek@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x21f9):qsql_mysql.cpp: undefined refe
rence to `mysql_close@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x2b8c):qsql_mysql.cpp: undefined refe
rence to `mysql_list_fields@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0x2bd5):qsql_mysql.cpp: undefined refe
rence to `mysql_fetch_field@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x2c3c):qsql_mysql.cpp: undefined refe
rence to `mysql_free_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x2db4):qsql_mysql.cpp: undefined refe
rence to `mysql_query@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x2f74):qsql_mysql.cpp: undefined refe
rence to `mysql_query@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x3134):qsql_mysql.cpp: undefined refe
rence to `mysql_query@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x37b0):qsql_mysql.cpp: undefined refe
rence to `mysql_real_escape_string@16'
tmp/obj/release_shared/qsql_mysql.o(.text+0x41fc):qsql_mysql.cpp: undefined refe
rence to `mysql_init@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x431c):qsql_mysql.cpp: undefined refe
rence to `mysql_real_connect@32'
tmp/obj/release_shared/qsql_mysql.o(.text+0x43d9):qsql_mysql.cpp: undefined refe
rence to `mysql_select_db@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x443b):qsql_mysql.cpp: undefined refe
rence to `mysql_set_character_set@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x4478):qsql_mysql.cpp: undefined refe
rence to `mysql_get_client_version@0'
tmp/obj/release_shared/qsql_mysql.o(.text+0x4492):qsql_mysql.cpp: undefined refe
rence to `mysql_get_server_version@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x494c):qsql_mysql.cpp: undefined refe
rence to `mysql_close@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5170):qsql_mysql.cpp: undefined refe
rence to `mysql_list_tables@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x51a3):qsql_mysql.cpp: undefined refe
rence to `mysql_data_seek@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0x51b1):qsql_mysql.cpp: undefined refe
rence to `mysql_fetch_row@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5235):qsql_mysql.cpp: undefined refe
rence to `mysql_free_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x53a6):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_result_metadata@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x53c1):qsql_mysql.cpp: undefined refe
rence to `mysql_num_fields@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5496):qsql_mysql.cpp: undefined refe
rence to `mysql_fetch_field@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5693):qsql_mysql.cpp: undefined refe
rence to `mysql_next_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x56b1):qsql_mysql.cpp: undefined refe
rence to `mysql_store_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x56c0):qsql_mysql.cpp: undefined refe
rence to `mysql_free_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x56da):qsql_mysql.cpp: undefined refe
rence to `mysql_next_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x58b2):qsql_mysql.cpp: undefined refe
rence to `mysql_free_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x58d6):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_close@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5bb0):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_prepare@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5cbd):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_init@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5d77):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_param_count@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5d98):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_param_count@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x5fbe):qsql_mysql.cpp: undefined refe
rence to `mysql_real_query@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6144):qsql_mysql.cpp: undefined refe
rence to `mysql_store_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x616a):qsql_mysql.cpp: undefined refe
rence to `mysql_field_count@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x618f):qsql_mysql.cpp: undefined refe
rence to `mysql_field_count@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x61ed):qsql_mysql.cpp: undefined refe
rence to `mysql_affected_rows@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6257):qsql_mysql.cpp: undefined refe
rence to `mysql_fetch_field_direct@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6874):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_reset@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6c65):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_param_count@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6c80):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_param_count@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6cb0):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_execute@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6dc5):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_affected_rows@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6e0d):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_bind_result@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6e50):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_attr_set@12'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6e72):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_store_result@4'
tmp/obj/release_shared/qsql_mysql.o(.text+0x6ebd):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_bind_result@8'
tmp/obj/release_shared/qsql_mysql.o(.text+0x735c):qsql_mysql.cpp: undefined refe
rence to `mysql_stmt_bind_param@8'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql4.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/4.3.3/src/plugins/sqldrivers/mysql'
mingw32-make: *** [release] Error 2
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.2.2008, 11:55
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Попробуй добавить в переменную среду INCLUDE путь к mysql хидерам D:\Programs\mysql51\include
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bop
  опции профиля:
сообщение 11.2.2008, 12:36
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 11.2.2008
Пользователь №: 90

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 11.2.2008, 11:55) *
Попробуй добавить в переменную среду INCLUDE путь к mysql хидерам D:\Programs\mysql51\include


добавил, но ничегоне изменилось
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.2.2008, 13:07
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


make по всей видимости не видит хидеры и либы посмотри в эту сторону, можешь скомпилить простейшее helloworld приложение?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bop
  опции профиля:
сообщение 11.2.2008, 13:38
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 11.2.2008
Пользователь №: 90

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 11.2.2008, 13:07) *
make по всей видимости не видит хидеры и либы посмотри в эту сторону, можешь скомпилить простейшее helloworld приложение?


да могу, компилирует не только хеловорд но и достаточно большие проекты, а скомпилировать плюгин не получется
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.2.2008, 14:14
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


судя из описания подобной проблемы у буржуев ты используешь не ту версию mySQL. Qt плагин хочет использовать какую-то другую.
Это если все правильно с INCLUDE и LIB папками.

Как вариант может ты подставляешь релизную версию mySQL для дебажного Qt и наоборот.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bop
  опции профиля:
сообщение 11.2.2008, 14:40
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 11.2.2008
Пользователь №: 90

Спасибо сказали: 0 раз(а)




Репутация:   0  


огромное спасибо за помощь.

разобрался. может конечно не совсем разобрался но теперь скомпилировал плугин после изучения буржуйских форумов.

как понимаю не у меня одного такая проблема встает. это может изза версии мускула или изза версии КТ.

кратко опишу как решил эту проблему:

сначала нужно добыть утилиту reimp
ее можно взять здесь для винды http://garr.dl.sourceforge.net/sourceforge...tils-0.3.tar.gz
потом применяем эту утилиту например:

cd c:\mysql\lib\opt
reimp -d libmysql.lib
dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a

dlltool есть в MinGW поумолчанию

потом компилируем:
cd c:\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=-LC:\MYSQL\LIB\OPT -lmysql" mysql.pro
make

после этого у меня сразу же скомпилировался плугин. и приложение которое я пишу теперь спокойно подключается к базе данных и работает. до этого приложение не могло загрузить драйвер :)

надеюсь кому-нибудь еще поможет это решение проблемы :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.2.2008, 16:35
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


к стати подобная проблема обсуждалась здесь, пора FAQ писать по MySQL vs Qt, или отдельный подфорум :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.12.2024, 15:57