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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Mac OS 10.8 Qt 5 MySQL plugin не видит  (Прочитано 3955 раз)
santaclaus
Гость
« : Март 23, 2013, 22:16 »

Всем привет! Что то на мучался, в общем собираю плагин для работы с БД mysql!
Имею Mac OS 10.8 Qt 5.0.1 SDK  сборку и MySQL Community Server 5.6.10

В общем указал qmake что собирать и откуда, в папке с исходником все собралось, по окончанию делаю make и  make install, плагины появляются в куче с остальными, НО при сборке проекта их не видно, ругается что нету плагина, причем остальные из папки с плагинами показывает!

Куда глянуть???

по собранному плагину инфу дает такую
otool -L libqsqlmysql.dylib
libqsqlmysql.dylib:
   libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
   libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
   /Users/user/Qt5.0.1/5.0.1/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.0.0, current version 5.0.1)
   /Users/user/Qt5.0.1/5.0.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.0.0, current version 5.0.1)
   /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
   /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)


Вот так велась сборка:
/Users/user/Qt5.0.1/5.0.1/clang_64/bin/qmake -o Makefile "INLCUDEPATH+=/usr/local/mysql/include" "LIBS+=-L/usr/local/mysql/lib" mysql.pro

make

make install

В pro  файле проекта конечно же +=sql и в заголовках все для работы с БД, обращение к плагину как "QMYSQL"

Остальные плагины работают верно :/
Записан
santaclaus
Гость
« Ответ #1 : Март 26, 2013, 09:46 »

И так маленькое HOWTO, проблему решил!

Значит для сборки плагина  mysql как писал выше скачал сам мускул, поставил его и далее:
переходим в папку где у нас лежит исходный код для сборки плагина

cd /Users/user/Qt5.0.1/5.0.1/Src/qtbase/src/plugins/sqldrivers/mysql/

далее выполняем qmake (я указал полный путь до моего qmake) указав расположение библиотек mySQL

/Users/user/Qt5.0.1/5.0.1/clang_64/bin/qmake -spec macx-g++ -o Makefile mysql.pro

теперь устанавливаем плагин

make install

теперь в Users/user/Qt5.0.1/5.0.1/clang_64/plugins/sqldrivers/
у нас появится 2 файла:

libqsqlmysql.dylib
libqsqlmysql_debug.dylib


далее если начать собирать проект с использованием этих плагинов, Qt Creator будет ругаться что их нету! Грустный

Что бы открыть ему глаза, переходим в директорию с готовыми плагинами

cd /Users/user/Qt5.0.1/5.0.1/clang_64/plugins/sqldrivers/

теперь смотрим какие библиотеки использовались для сборки данного файла

otool -L libqsqlmysql.dylib
libqsqlmysql.dylib:
   libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
   libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
   /Users/user/Qt5.0.1/5.0.1/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.0.0, current version 5.0.1)
   /Users/user/Qt5.0.1/5.0.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.0.0, current version 5.0.1)
   /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
   /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

Видно что все библиотеки прописаны с путями и вот только сама библиотека mySQL показана без путей, ЭТО И НАДО ПОПРАВИТЬ!

Для этого в этом же каталоге с плагином выполняем команду:

install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient_r.18.dylib libqsqlmysql.dylib

Теперь проверяем как стало:

otool -L libqsqlmysql.dylib
libqsqlmysql.dylib:
   libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
   /usr/local/mysql/lib/libmysqlclient_r.18.dylib (compatibility version 18.0.0, current version 18.0.0)
   /Users/santaclaus/Qt5.0.1/5.0.1/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.0.0, current version 5.0.1)
   /Users/santaclaus/Qt5.0.1/5.0.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.0.0, current version 5.0.1)
   /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
   /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

Далее при сборке приложения на Qt Creator ни какой ругани и соединение с БД работает!

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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