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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4.2.1, драйвер mysql под Windows  (Прочитано 11443 раз)
sergp
Гость
« : Ноябрь 07, 2006, 08:41 »

Переехал на 4.2.1, под Linux - ни каких проблем, сказка.
Пытаюсь перекинуть проект под Windows. версия Open Source и там и там, сделал ему
configure -qt-sql-mysql
потом make,
он ругнулся на отсутствие mysql.h
я ему в Makefile.Debug и Makrfile.Release прописал пути к заголовкам mysql, а так же путь к самой библиотеке libmysql.dll, (если память не изменяет, не под руками). Он все это благополучно схавал, однако линковщик ld.exe начал много ругаться на предмет unresolvel symbols.
Встречался и ранее с таким, когда заголовки от одной версии библиотеки, а сама библиотека - другой, но здесь mysql server - ставил одну инсталляху, в которой отметил SDK, сам mysql работает.
Вот и не выходит у меня Qt-шный драйвер под mysql откомпилировать.

Может встречался кто и подкинет умную мыслишку?
Записан
Dendy
Гость
« Ответ #1 : Ноябрь 07, 2006, 09:19 »

Под виндой лучше не собирать драйвер MySql с помощью configure. И править МейкфайльІ - последнее дело. Идём в Ассистант и читаем:

Цитировать
You need to get the MySQL installation files. Run SETUP.EXE and choose "Custom Install". Install the "Libs & Include Files" Module. Build the plugin as follows (here it is assumed that MySQL is installed in C:\MySQL):
Код:
     cd %QTDIR%\src\plugins\sqldrivers\mysql
     qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro
     nmake

If you are not using a Microsoft compiler, replace nmake with make in the line above.
Записан
QCasper
Гость
« Ответ #2 : Ноябрь 07, 2006, 14:03 »

Чуваг, ты попал Веселый
Смотри сюда http://prog.org.ru/forum/htopic_3197_mysql.html

Хотя может тебе, конечно, больше повезет. А по поводу 4.2 или 4.1, мне кажется в случае с mysql один фиг.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #3 : Ноябрь 07, 2006, 18:16 »

При сборке Qt пользуйтесь configure и не ломайте голову. Умные люди для вас работали. Чтение configure help дает ясный ответ:
configure -qt-sql-mysql -IC:\mysql\include -lC:\mysql\lib\opt\libmysql
При условии, что MySql лежит в папке C:\mysql и соответственно C:\mysql\include - папка заголовков, а C:\mysql\lib\opt\ - папка библиотек MySql. Все прекрасно собирается и работает. Опробовано. При переносе программы на любую машину необходимо переносить и libmysql.dll, скопировав последний или в папку программы или в папку в соответствии с путями (PATH).
Записан
SLiDER
Гость
« Ответ #4 : Ноябрь 07, 2006, 22:39 »

Судя по вашему посту собираете вы все это чем-то вроде MINGW, если я не ошибаюсь, то QCasper дал правильную ссылку, если мне память не изменяет то я там писал что нужно будет сделать для достижения задуманного результата.
А в кратце, проблема в том, что уже довольно давно в комплекте с MySQL не идет ни одной библиотеки для, выше указанного, компилятора, и их нужно сделать самому, ручками.  :wink:
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #5 : Ноябрь 08, 2006, 09:32 »

Все это для MSVC. Проверено.
Записан
Dendy
Гость
« Ответ #6 : Ноябрь 08, 2006, 10:50 »

Цитата: "Mikhail"
configure -qt-sql-mysql -IC:\mysql\include -lC:\mysql\lib\opt\libmysql


Да, есть возможность собрать Qt вместе з драйвером таким способом. Но ИМХО ето потенциально неверно.

Дерево в том, что Qt самодостаточна. Кроме зависимостей от сторонних библиотек для драйверов баз данньІх никаких других зависимостей нет. Все третесторонние библиотеки находятся прямо с дистрибутивом Qt и гарантированно собираются и работают вместе с данньІм дистрибутивом.

Если же возникнут проблемьІ со сторонней библиотекой, пути к которой прописаньІ в параметрах configure - оборвётся сборка всей либьІ, что как минимум глупо.

Так что я б посоветовал просто лишний раз запустить qmake && make  для нужного драйвера после сборки Qt.  :wink:
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #7 : Ноябрь 08, 2006, 11:38 »

Разговор идет о разных вещах.
Qt предполагает два варианта использования SQL драйверов.

Help configure дает:
    -qt-sql-<driver> ... Enable a SQL <driver> in the Qt Library.
    -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to at run
                         time.

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

Читать надо и assistant и help configure...... и поступать умно в соответствии со своими предпочтениями.
Записан
sergp
Гость
« Ответ #8 : Ноябрь 08, 2006, 12:08 »

Еще раз доброе время суток!
Assistant я конечно же читал и все манипуляции типа
make -o Makefile "INCLUDEPATH+=.... " "LIBS+= ..."
вносят в Makefile именно те изменения, которые я вношу руками.

Если в configure указываю какие либо опции -I или -L он тупо выдает мне свой хелп. Пробовал с кавычками, без кавычек, с пробелами и без них.

2SLiDER:
компилю именно с помощью MINGW, по ссылке указаной QCasper'ом не нашел ответа на вопрос касающийся:
"...давно в комплекте с MySQL не идет ни одной библиотеки для, выше указанного, компилятора, и их нужно сделать самому, ручкам..."

Можно как нибудь эту тему освятить по подробнее. Под винду никогда ничего не компилировал, просто нужда заставляет.
Записан
Dendy
Гость
« Ответ #9 : Ноябрь 08, 2006, 12:11 »

Да, точно. Совсем забьІл, что -qt-sql-<driver> линкует статически к библиотеке, а не создаёт плагин.
Записан
sergp
Гость
« Ответ #10 : Ноябрь 08, 2006, 12:11 »

Цитата: "Mikhail"
Разговор идет о разных вещах.
Qt предполагает два варианта использования SQL драйверов.

Help configure дает:
    -qt-sql-<driver> ... Enable a SQL <driver> in the Qt Library.
    -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to at run
                         time.

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

.


попробуем...
Записан
Tonal
Гость
« Ответ #11 : Ноябрь 08, 2006, 18:36 »

Цитата: "sergp"
2SLiDER:
компилю именно с помощью MINGW, по ссылке указаной QCasper'ом не нашел ответа на вопрос касающийся:
"...давно в комплекте с MySQL не идет ни одной библиотеки для, выше указанного, компилятора, и их нужно сделать самому, ручкам..."

Можно как нибудь эту тему освятить по подробнее. Под винду никогда ничего не компилировал, просто нужда заставляет.

Поищи утилиту reimp - она из импортных библиотек от VC делает импортные дибы для mingw.
Напускаешь ея на MySQL\lib\opt\libmysql.lib и получаешь libmysql.a

В принципе можно и без неё это проделать, но с ней - удобнее.
Записан
Dendy
Гость
« Ответ #12 : Ноябрь 08, 2006, 20:13 »

Как получить .a файл из Студийной DLL'ки:

Код:
cd c:/mysql/lib
dlltool -d ../include/libmysql.def -l ../libmysql.a libmysql.dll


А вообще вот полезная страничка:
http://mywebpage.netscape.com/yongweiwu/stdcall.htm
Записан
SLiDER
Гость
« Ответ #13 : Ноябрь 08, 2006, 23:40 »

Цитата: "sergp"
2SLiDER:
компилю именно с помощью MINGW, по ссылке указаной QCasper'ом не нашел ответа на вопрос касающийся:
"...давно в комплекте с MySQL не идет ни одной библиотеки для, выше указанного, компилятора, и их нужно сделать самому, ручкам..."

Можно как нибудь эту тему освятить по подробнее. Под винду никогда ничего не компилировал, просто нужда заставляет.


В той теме я действительно ни чего не писал, звиняйте ошибочка вышла. Смотреть надобно здесь -> http://prog.org.ru/forum/lhtopic_2417_0_0_asc_mysql.html
Записан
sergp
Гость
« Ответ #14 : Ноябрь 09, 2006, 18:29 »

Цитата: "SLiDER"
Смотреть надобно здесь -> http://prog.org.ru/forum/lhtopic_2417_0_0_asc_mysql.html


Посмотрел, все откомпилилось, собралось, появился плагин QMYSQL,
запускаю qtdemo SQL Browser пытаюсь подключиться к своей базе (выбрав соответственно QMYSQL из списка) и имею
QMYSQL: Unable to open database 'blablabla'
локальным mysql клиентом нормально подключаюсь.
Может чего-то не доделал?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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