Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кому удалось собрать QT + MySQL ? qt4.3.1 src, mysql 6.0, Windows XP 
:(
    Опции темы
JavaCraft
Дата 6.9.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 8.2.2007

Репутация: нет
Всего: 1



Народ, кому удалось собрать QT + MYSQL, поделитесь секретом.

сначала попробовал так
configure.exe ... -shared ... -I "C:/pgsql/include" -L "C:/pgsql/lib" -l "pq" -plugin-sql-psql
-I "C:/mysql/include" -L "C:/mysql/lib/opt" -l "mysql" -plugin-sql-mysql

Долго собиралась затем выдала кучу ошибок, типа такой
tmp\obj\release_shared\qsql_mysql.o:qsql_mysql.cpp:(.text+0x738a): undefined reference to `mysql_stmt_bind_param@8'
При этом, плагин для PostgreSQl собирается нормально.

Попробовал определения def из дистрибутива подсунуть

configure.exe ... -shared ... -I "C:/pgsql/include" -L "C:/pgsql/lib" -l "pq" -plugin-sql-psql
-D "C:/mysql/include/libmysql.def" -I "C:/mysql/include" -L "C:/mysql/lib/opt" -l "mysql" -plugin-sql-mysql

вообще на этапе moc свалился с кучей ошибок, типа такой

In file included from ../../../include/QtCore/qlocale.h:1,
from ..\..\corelib\kernel\qmetatype.cpp:30:
../../../include/QtCore/../../src/corelib/tools/qlocale.h:22:1: unterminated #if
ndef
mingw32-make[2]: *** [release\qmetatype.o] Error 1
mingw32-make[2]: Leaving directory `C:/dev/lib/Qt/4.3.1/src/tools/moc'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `C:/dev/lib/Qt/4.3.1/src/tools/moc'
mingw32-make: *** [sub-moc-make_default-ordered] Error 2


Тогда я конвертнул libmysql.lib в libmysql.a вот по эти рекомендациям http://www.mechta34.com/it/qt4/qtdb000.html
Создал libmysql.def - файл, который имеет совсем иную структуру нежели def в дистрибутиве mysql

cd c:\mysql\lib\opt
reimp -d libmysql.lib

и выполнил команду
dlltool -d libmysql.def -l libmysql.a libmysql.dll -k

libmysql.a - получился подозрительно маленький - около килобайта.

Затем повторил самый первый вариант(без опции -D), в надежде, что теперь он подхватит новую библиотеку, но получил ту-же ошибку.


Что делать?

PM MAIL   Вверх
JavaCraft
Дата 6.9.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 8.2.2007

Репутация: нет
Всего: 1



 Получилось...

Судя по всему, теперь самый новый mingw32 (5.1.3) совместим c lib и dll библиотеками MySQL(которые раньше были несовместимы), не требует преобразования при помощи reimp и dlltool, и работает не по шаблону lib*.a

Вместо, как бы правильной, но не работающей версии
qmake -o Makefile "INCLUDEPATH+=C:/webserver/mysql60/include" "LIBS+=-LC:/webserver/mysql60/lib/opt -lmysql" mysql.pro

Я использовал такую команду
qmake -o Makefile "INCLUDEPATH+=C:/webserver/mysql60/include" "LIBS+=C:/webserver/mysql60/lib/opt/libmysql.lib" mysql.pro
mingw32-make

листинг
c:/dev/util/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `c:/dev/lib/qt/4.3.1/src/plugins/sqldrivers/mysql'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,c:/dev/lib/qt/4.3.1/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_qsql_mysql.o -L'c:/dev/lib/qt/4.3.1/lib' -L'c:/dev/lib/qt/4.3.1/lib' tmp/obj/release_shared/qsqlmysql_resource_res.o -LC:/webserver/pgsql/lib -lpq -LC:/webserver/mysql60/lib/opt -lmysql C:/webserver/mysql60/lib/opt/libmysql.lib -lQtSql4 -lQtCore4
Creating library file: c:/dev/lib/qt/4.3.1/plugins/sqldrivers/libqsqlmysql4.a
mingw32-make[1]: Leaving directory `c:/dev/lib/qt/4.3.1/src/plugins/sqldrivers/mysql'

сгенерировались
libqsqlmysql4.a (2182)
qsqlmysql4.dll (76800)

для MySQL 6.0 

Это сообщение отредактировал(а) JavaCraft - 6.9.2007, 16:19
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.