MySQL for Qt Android
Добрый день все пользователям evileg.com
OS windows 7
Qt 5.10.1 for Android
Столкнулся с проблемой при установке mysql под qt android. Использовал 2 вариант в статьи
https://wiki.qt.io/Build_Qt_5_MySQL_Plugin_for_Android
Модифицировал файл под свои данные. Сохранил и скинул в папку build но MySQL не работает на Андроиде. При компиляции выводит ошибку
W/libtest.so(29684): (null):0 ((null)): QSqlDatabase: QMYSQL driver not loaded W/libtest.so(29684): (null):0 ((null)): QSqlDatabase: available drivers: QSQLITE W/libtest.so(29684): (null):0 ((null)): QSqlQuery::exec: database not open
Файл который был собран по 2 варианту выглядет так.
#!/bin/bash # Based on http://qt-project.org/wiki/Build_Qt5_mysql_plugin_for_Android export ANDROID_NDK_ROOT="$HOME/.Qt/android-ndk-r17/" export QT_ROOT="$HOME/.Qt510/5.10.1/" SR="$ANDROID_NDK_ROOT/platforms/android-17/arch-arm/" BR="$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-" here="$(dirname "$0")" find "$SR" > "$here/rootfs_files_before.txt" || exit 1 checkChanges() { find "$SR" > "$here/rootfs_files_after.txt" || exit 1 echo "Changes:" diff -u "$here/rootfs_files_before.txt" "$here/rootfs_files_after.txt" } trap checkChanges EXIT # OpenSSL #pkg=openssl-1.0.1f.tar.gz #pkg=openssl-1.0.1e.tar.gz pkg=openssl-1.0.2d.tar.gz dir=$(basename $pkg .tar.gz) if [ ! -d $dir ]; then wget -c http://www.openssl.org/source/$pkg tar -xf $pkg || exit 1 fi pushd $dir RANLIB="$BR"ranlib CC="$BR"gcc ./Configure android-armv7 --prefix=$SR/usr ANDROID_DEV=$SR/usr make #|| exit 1 ANDROID_DEV=$SR/usr make || exit 1 make install_sw || exit 1 popd # libiconv pkg=libiconv-1.14.tar.gz dir=$(basename $pkg .tar.gz) if [ ! -d $dir ]; then wget -c http://ftp.gnu.org/pub/gnu/libiconv/$pkg tar -xf $pkg || exit 1 fi pushd $dir STRIP="$BR"strip RANLIB="$BR"ranlib OBJDUMP="$BR"objdump AR="$BR"ar CC="$BR"gcc CFLAGS=--sysroot=$SR CPP="$BR"cpp CPPFLAGS=$CFLAGS ./configure --host=arm --prefix=$SR/usr --with-sysroot=$SR make || exit 1 make install || exit 1 popd # mariadbclient version=2.0.0 pkg=mariadb_client-$version-src.tar.gz url=https://downloads.mariadb.org/f/client-native-$version/src/$pkg # FIXME: This one fails to build, linker errors #version=2.1.0 #pkg=mariadb-connector-c-$version-src.tar.gz #url=https://downloads.mariadb.org/f/connector-c-$version/source-tgz/$pkg dir=$(basename $pkg .tar.gz) if [ ! -d $dir ]; then wget -c $url tar -xf $pkg || exit 1 fi pushd $dir sed -i -e "s|ADD_SUBDIRECTORY(unittest/libmariadb)|#ADD_SUBDIRECTORY(unittest/libmariadb)|" CMakeLists.txt sed -i -e "N; s|typedef unsigned short ushort;\n#endif|#endif\ntypedef unsigned short ushort;|" include/my_global.h sed -i -e "N; s|SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION.*||" libmariadb/CMakeLists.txt sed -i -e "N; s|SOVERSION \${CPACK_PACKAGE_VERSION_MAJOR})||" libmariadb/CMakeLists.txt # Pig disgusting: the previous multiline thingie should've done it sed -i -e "N; s|\${CPACK_PACKAGE_VERSION_MAJOR}||" libmariadb/CMakeLists.txt # Pig disgusting: what the fuck mkdir build pushd build PKG_CONFIG_PATH=$SR/usr/lib/pkgconfig cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS=--sysroot="$SR" \ -DCMAKE_INSTALL_PREFIX="$SR/usr" \ -DCMAKE_C_COMPILER="$BR"gcc \ -DCMAKE_LINKER="$BR"ld \ -DCMAKE_AR="$BR"ar \ -DCMAKE_NM="$BR"nm \ -DCMAKE_OBJCOPY="$BR"objcopy \ -DCMAKE_OBJDUMP="$BR"objdump \ -DCMAKE_RANLIB="$BR"ranlib \ -DCMAKE_STRIP="$BR"strip \ -DICONV_INCLUDE_DIR="$SR/usr/include" \ -DICONV_LIBRARIES="$SR/usr/lib/libiconv.a" \ -DWITH_EXTERNAL_ZLIB=ON \ -DZLIB_INCLUDE_DIR="$SR/usr/include" \ -DZLIB_LIBRARY="$SR/usr/lib/libz.so" ../ || exit 1 make install || exit 1 popd # ??? pwd cp build/libmariadb/*.{a,so} "$SR/usr/lib/mariadb/" || exit 1 popd # qt qmake="$QT_ROOT/android_armv7/bin/qmake" [ ! -f "$qmake" ] && { echo "Could not find qmake in '$qmake'"; exit 1; } [ ! -x "$qmake" ] && { echo "Qmake is not executable in '$qmake'"; exit 1; } qtVersion=$(qmake -query QT_VERSION) #pkg=qt-everywhere-opensource-src-$qtVersion.tar.gz #pkg=qtbase-opensource-src-$qtVersion.tar.gz pkg=qtbase-opensource-src-5.5.1.tar.gz dir=$(basename $pkg .tar.gz) if [ ! -d $dir ]; then # wget -c http://download.qt.io/official_releases/qt/${qtVersion%.*}/$qtVersion/submodules/$pkg # wget -c http://download.qt.io/official_releases/qt/${qtVersion%.*}/$qtVersion/$pkg wget -c http://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtbase-opensource-src-5.5.1.tar.gz tar -xf $pkg || exit 1 fi pushd $dir/src/plugins/sqldrivers/mysql/ $qmake "INCLUDEPATH+=$SR/usr/include/mariadb" "LIBS+=$SR/usr/lib/mariadb/libmariadbclient.a $SR/usr/lib/libssl.a $SR/usr/lib/libcrypto.a $SR/usr/lib/libiconv.a" "LIBPATH+=$SR/usr/lib/mariadb" -o Makefile mysql.pro make || exit 1 make install || exit 1 popd echo echo "BOOYAH!!!" echo
Помогите пожалуйста буду очень благодарен.
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
- Дмитрий
- 07 травня 2024 р. 09:40
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:60бали,
- Рейтинг балів-1
d
- dsfs
- 26 квітня 2024 р. 04:56
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
Останні коментарі
Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко05 лютого 2024 р. 01:50
EVA25 грудня 2023 р. 10:30
Boost - статичне зв'язування в проекті CMake під Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Підключення бібліотеки Boost в Qt для компіляторів MinGW і MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Тепер обговоріть на форумі
добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
BlinCT05 травня 2024 р. 05:46
Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
Evgenii Legotckoi02 травня 2024 р. 14:07
IscanderChe30 квітня 2024 р. 04:22
Разработка Qt-приложения с доступом к MySQL под Android
https://habr.com/post/134502/
Спасибо за отклик. Я пытался собрать с помощи этой статьи но не нашел в фале на которую автор дает ссылку это текст
Спасибо за отклик. Я пытался собрать с помощи этой статьи но не нашел в фале на которую автор дает ссылку это текст
насколько я помню - там смысл в том, чтобы откомпилять драйвер MySql из исходников. В и-нете есть еще статьи на эту тему. Хотя могу ошибиться.
Ну да - вы же сами используете mariadb (хотя это чуть-чуть не MySql)
Нашёл ещё одну статью, шанс по ней делаю. Ошибки есть, пытаюсь исправить. Если получится напишу статью