Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MySQL, -static, ошибки при компиляции примеров
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
zerling
В общем qt 4.3.4, mingw, MySQL 4.1 (всё под windows)

Конфигурирую QT такой командой: "configure -static -release -qt-libpng -qt-libjpeg -qt-sql-mysql" и компилирую.
В QT в каталог include скопировал всё из каталога include MySQL
Заголовочные файлы находит, но на компиляции примеров ругается:

Раскрывающийся текст
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release\cachedtable.exe tmp/ob
j/release_static/main.o tmp/obj/release_static/tableeditor.o tmp/obj/release_static/moc_tableeditor.o -L"c:\RAZRAB\QT434\lib" -L"c:\RAZRAB\QT434\lib" -lmingw32
-lqtmain -lQtSql -lQtGui -lmysql -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
c:\RAZRAB\QT434\lib/libQtSql.a(qsql_mysql.o):qsql_mysql.cpp:(.text+0x4c): undefined reference to `mysql_character_set_name@4'
c:\RAZRAB\QT434\lib/libQtSql.a(qsql_mysql.o):qsql_mysql.cpp:(.text+0x174): undefined reference to `mysql_error@4'
c:\RAZRAB\QT434\lib/libQtSql.a(qsql_mysql.o):qsql_mysql.cpp:(.text+0x18a): undefined reference to `mysql_errno@4'
c:\RAZRAB\QT434\lib/libQtSql.a(qsql_mysql.o):qsql_mysql.cpp:(.text+0x697): undefined reference to `mysql_stmt_error@4'


при этом в \plugins\sqldrivers\ есть файл libqsqlmysql.a
Где брать недостающую библиотеку?
ViGOur
Как я понимаю компилятор не знает где брать mysql'ные lib файлы.
Litkevich Yuriy
Цитата(zerling @ 10.2.2009, 17:28) *
при этом в \plugins\sqldrivers\ есть файл libqsqlmysql.a
это собственный драйвер Qt для MySQL, попробуй просто положить в каталог %QTDIR%\lib MySQL'ные библиотеки (*.lib или *.a)
zerling
Цитата(Litkevich Yuriy @ 10.2.2009, 15:07) *
Цитата(zerling @ 10.2.2009, 17:28) *
при этом в \plugins\sqldrivers\ есть файл libqsqlmysql.a
это собственный драйвер Qt для MySQL, попробуй просто положить в каталог %QTDIR%\lib MySQL'ные библиотеки (*.lib или *.a)


Попробовал.. скопировал всё из MySQL41\lib\opt всё в %QTDIR%\lib результат тот же самый..
У меня в %QTDIR%\lib были только файлы *.prl и *.а и думаю, что для статики MySQL`ная либа тоже долна быть *.a, но такого файла не увидел в MySQL. (MySQL качал в бинариках, либы там есть, но они *.lib и *.dll)...
Litkevich Yuriy
Цитата(zerling @ 10.2.2009, 18:20) *
и думаю, что для статики MySQL`ная либа тоже долна быть *.a, но такого файла не увидел в MySQL.
у меня для FireBird'а MinGw проглатил *.lib без запинки, так что надо попробовать.

Еще есть такой способ, без копирования, указать пути:
Цитата
configure -static -qt-sql-mysql -Ic:\path\to\MySQL\include -Lc:\path\to\MySQL\lib -llibmysql


ключи (выделеные жирным) не отрывай от их значения
Константин
http://dev.mysql.com/get/Downloads/MySQL-4...h/mirror/mysql/
Litkevich Yuriy
Константин, а пояснить?
Константин
вероятно, зерлинг скачал пакет "виндовз эссеншиалз", в котором только дллки. для статической сборки нужен полный пакет - выше привёл ссылку на него.
zerling
В общем копирование либов из мускуля не помогает, по ссылке ходить с работы не могу - тут ОЧЕНЬ медленный интернет...
Litkevich Yuriy
Константин, Есть связанный с темой вопрос:
Я собирал плагин для FireBird, всюду есть такой субпроцесс:
Цитата
reimp -d fbclient_ms.lib
dlltool -k --input-def fbclient.def --dllname fbclient.dll --output-lib

однако при компиляции плагина возникает ошибка.
Я решил на прямую:
Цитата
ren fbclient_ms.lib fbclient.lib
qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_0\include" "LIBS+=F:\Firebird\Firebird_2_0\lib\fbclient.lib" ibase.pro
т.е. прямо *.lib файл скормил MinGW, как он его съел?
zerling
Переименовал libmysql.lib в libmysql.a (просто переименовал ничем не обрабатывая)
Всё скомпилировалось!!!
Litkevich Yuriy
Цитата(zerling @ 10.2.2009, 19:10) *
Переименовал libmysql.lib в libmysql.a (просто переименовал ничем не обрабатывая)
хм, поидее и этого не надобыло.
Теперь было бы неплохо записть всю процедуру по шагам.
Константин
боюсь, этот вопрос не ко мне :)
собирал плагин к птицу ещё версии с полуторной (сервер и эмбед) и ни разу не пользовал реимп/дллтул - проблем со сборкой пока не было...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.