MySQL, -static, ошибки при компиляции примеров |
Здравствуйте, гость ( Вход | Регистрация )
MySQL, -static, ошибки при компиляции примеров |
zerling |
10.2.2009, 14:28
Сообщение
#1
|
Студент Группа: Участник Сообщений: 19 Регистрация: 31.10.2008 Из: г.Мытищи Московской обл. Пользователь №: 406 Спасибо сказали: 0 раз(а) Репутация: 0 |
В общем 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 Где брать недостающую библиотеку? Сообщение отредактировал Litkevich Yuriy - 10.2.2009, 15:29
Причина редактирования: уточнил название темы
|
|
|
ViGOur |
10.2.2009, 14:43
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Как я понимаю компилятор не знает где брать mysql'ные lib файлы.
|
|
|
Litkevich Yuriy |
10.2.2009, 15:07
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
zerling |
10.2.2009, 15:20
Сообщение
#4
|
Студент Группа: Участник Сообщений: 19 Регистрация: 31.10.2008 Из: г.Мытищи Московской обл. Пользователь №: 406 Спасибо сказали: 0 раз(а) Репутация: 0 |
при этом в \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 |
10.2.2009, 15:27
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
и думаю, что для статики MySQL`ная либа тоже долна быть *.a, но такого файла не увидел в MySQL. у меня для FireBird'а MinGw проглатил *.lib без запинки, так что надо попробовать.Еще есть такой способ, без копирования, указать пути: Цитата configure -static -qt-sql-mysql -Ic:\path\to\MySQL\include -Lc:\path\to\MySQL\lib -llibmysql ключи (выделеные жирным) не отрывай от их значения |
|
|
Константин |
10.2.2009, 15:33
Сообщение
#6
|
Студент Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1 |
|
|
|
Litkevich Yuriy |
10.2.2009, 15:34
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Константин, а пояснить?
|
|
|
Константин |
10.2.2009, 15:43
Сообщение
#8
|
Студент Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1 |
вероятно, зерлинг скачал пакет "виндовз эссеншиалз", в котором только дллки. для статической сборки нужен полный пакет - выше привёл ссылку на него.
|
|
|
zerling |
10.2.2009, 15:43
Сообщение
#9
|
Студент Группа: Участник Сообщений: 19 Регистрация: 31.10.2008 Из: г.Мытищи Московской обл. Пользователь №: 406 Спасибо сказали: 0 раз(а) Репутация: 0 |
В общем копирование либов из мускуля не помогает, по ссылке ходить с работы не могу - тут ОЧЕНЬ медленный интернет...
|
|
|
Litkevich Yuriy |
10.2.2009, 15:54
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Константин, Есть связанный с темой вопрос:
Я собирал плагин для FireBird, всюду есть такой субпроцесс: Цитата reimp -d fbclient_ms.lib dlltool -k --input-def fbclient.def --dllname fbclient.dll --output-lib однако при компиляции плагина возникает ошибка. Я решил на прямую: Цитата ren fbclient_ms.lib fbclient.lib т.е. прямо *.lib файл скормил MinGW, как он его съел?
qmake -o Makefile "INCLUDEPATH+=F:\Firebird\Firebird_2_0\include" "LIBS+=F:\Firebird\Firebird_2_0\lib\fbclient.lib" ibase.pro |
|
|
Текстовая версия | Сейчас: 29.11.2024, 20:55 |