Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация
   
  ГлавнаяСправкаПоискВходРегистрация  
 
Переключение на Главную Страницу Страниц: 1
Печать
Собрать mysql клиент для android и драйвер QT для него в windows (Прочитано 5 266 раз)
FiN
Админ
*****
Вне Форума



Настрочил: 10 712
Krasnoturinsk
Пол: male
Собрать mysql клиент для android и драйвер QT для него в windows
23.04.2016 :: 11:35:41
 
это просто пост ненависти... чтобы былоУлыбка

предыстория
Понадобилось написать android версию, одной утилиты спец назначения, которой нужно лазить в уже готовую бд под mysql, если бы я знал что это такой геморрой может быть и сменил бд в исходном проектеУлыбка

из готовый драйверов, под андроид в QT5 оказался только qlite, чтоб собрать драйвер нужен клиент под android, cначала начал итскать готовый libmysqsl.so долго рылся - вывод в основном такой mysdl для android не нативен собирать самим. Нашел несколько собраных - со всеми падало.

почитал  Libmysqlclient native port to android, Разработка Qt-приложения с доступом к MySQL под Android и Cross-compiling MySQL и еще много шлака, но основная проблема что я все это собирался под виндой собиратьУлыбка

в итоге нужно Cmake  QT5 visualstudio android-ndk, исходники Connector/C (libmysqlclient) is a client library for C development. и android.toolchain.cmake


в android.toolchain.cmake есть инстукция как собирать под винду, у меня получилось так
SET ANDROID_NDK=C:\Android\android-ndk-r10e
cmake.exe -G"MinGW Makefiles"
-DCMAKE_TOOLCHAIN_FILE=путь к\android.toolchain.cmake
-DCMAKE_MAKE_PROGRAM="%ANDROID_NDK%\prebuilt\windows-x86_64\bin\make.exe"
-DANDROID_ABI=armeabi-v7a
-DANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-4.8 
-DANDROID_NATIVE_API_LEVEL=android-19
-DSTACK_DIRECTION=1

дальше было много всякого из того что осталось в записяхУлыбка
ошибка #define S_IREAD
в добавил ...\platforms\android-19\arch-arm\usr\include\linux\stat.h 
#if !defined(S_IREAD) && defined(S_IRUSR)
#  define S_IREAD  S_IRUSR
#  define S_IWRITE S_IRUSR
#endif

error: unknown type name 'pthread_barrier_t'
в \platforms\android-19\arch-arm\usr\include\pthread.h
typedef struct {
#if defined(__LP64__)
int64_t __private[4];
#else
int32_t __private[8];
#endif
} pthread_barrier_t;

error: 'SYS_gettid' undeclared 
mysql-connector-c-6.1.6-src\mysys\posix_timers.c:73
в api-21 этот кусок собирался в posix_timers.c добавил 
#include <sys/glibc-syscalls.h>
и скинул glibc-syscalls.h из android-21 в 19:)

Вылезло Generating ... comp_err: not found
собрал mysql клиент для винды через visualstudio  и забрал оттуда  extra\*.exe


в make файлах комментировал создание симлинков и удаление файлов т.е. вызывались ln -s и rm, както наверно это должно по другому делаться, более красиво...

в итоге клиент собрался! два вечера и субботаУлыбка

дальше собираем драйвер из исходников QT открываем 5.6\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
добавляем путь к собраному клиенту
LIBS += -Lпуть\mysql-connector-c-6.1.6-src\libs\armeabi-v7a

велез install_target error 1
поправил  в make C:$(INSTALL_ROOT на $(INSTALL_ROOT

собрался libqsqlmysql.so  кладем в \Qt\5.6\android_armv7\plugins\sqldrivers\

собираем проект добавляем и добавляем в либы libmysqlclient.so - все работает!
но как оказалось только в android-6, на остальных платформах до боли знакомый  Driver not loaded!
в итоге убрал из папки клиента все shared либы оставил только статику пересобрал драйвер получился
нужный libqsqlmysql.so работает везде

времени потрачено караул - проще было исходный проект перевести на что нибудь другое наверно...
в приложениях клиент mysql для android и драйвер для QT5.6 - может кто поиском набредет пригодитсяУлыбка

ps может все это как то можно проще сделать...

Наверх
 

libqsqlmysql.rar (2009 KB | 167 )
WWW  
IP записан
 
YuRbEn
Пользователь
**
Вне Форума



Настрочил: 256
Re: Собрать mysql клиент для android и драйвер QT для него в windows
Ответ #1 - 25.04.2016 :: 23:14:28
 
При всём уважении... не гламурно клиентом напрямую в бд лазить  Круглые глаза Но для утилит спец назначения, позволительно  Улыбка
Наверх
 
 
IP записан
 
FiN
Админ
*****
Вне Форума



Настрочил: 10 712
Krasnoturinsk
Пол: male
Re: Собрать mysql клиент для android и драйвер QT для него в windows
Ответ #2 - 26.04.2016 :: 23:30:31
 
YuRbEn писал(а) 25.04.2016 :: 23:14:28:
не гламурно клиентом напрямую в бд лазить

ты не понял, напрямую оно и не лазит этож - либа, набор библиотек, собраный с использованием ненормативной лексикиУлыбка а утилита да лазит напрямую...

ps был удивлен постам в даной темеУлыбка
Наверх
 
WWW  
IP записан
 
YuRbEn
Пользователь
**
Вне Форума



Настрочил: 256
Re: Собрать mysql клиент для android и драйвер QT для него в windows
Ответ #3 - 27.04.2016 :: 08:42:45
 
Понял, понял  Улыбка Примерно оценил трудозатраты и объем ненормативной лексики  Улыбка В 2014 кодил для коммерческого проекта, но там тфу тфу удалось вырулить как раз за счет серверной части которая аля кросс-БД и репликацией по региону. Но чтоб либу билдить под мускул это конечно респект. У топика потенциал, как только поисковики проиндексируют.
Наверх
 
 
IP записан
 
blinoladushka
Пользователь
**
Вне Форума


Я люблю наш Форум!

Настрочил: 95
Пол: male
Re: Собрать mysql клиент для android и драйвер QT для него в windows
Ответ #4 - 30.05.2016 :: 15:21:39
 
QT5 это сам по себе глюк. Одно время думал на нем писать, но меня убила неповортливость и глюковатость всей обертки. Пишу терь на Win Api. Может вам на андроиде клиента на JavaScript писать? а сервер пусть обрабатывает запросы  Смех Смех Смех
Наверх
 
 
IP записан
 
FiN
Админ
*****
Вне Форума



Настрочил: 10 712
Krasnoturinsk
Пол: male
Re: Собрать mysql клиент для android и драйвер QT для него в windows
Ответ #5 - 31.05.2016 :: 22:11:02
 
blinoladushka писал(а) 30.05.2016 :: 15:21:39:
Пишу терь на Win Api.

и как, все летает? обертка не глючит?Улыбка
Наверх
 
WWW  
IP записан
 
blinoladushka
Пользователь
**
Вне Форума


Я люблю наш Форум!

Настрочил: 95
Пол: male
Re: Собрать mysql клиент для android и драйвер QT для него в windows
Ответ #6 - 01.06.2016 :: 17:15:06
 
FiN писал(а) 31.05.2016 :: 22:11:02:
и как, все летает? обертка не глючит?Улыбка


VS конечно не без глюков.
Наверх
 
 
IP записан
 


Переключение на Главную Страницу Страниц: 1
Печать