Library 'mysql' is not defined.
-
wrote on 7 Jan 2018, 04:02 last edited by koahnig 1 Jul 2018, 13:10
I tried everything. Now I'm trying to compile the driver but I had this issu. Please, help-me. I'm using Win7 64 bit with Qt 32 bits and MySql 32bit with XAMPP.
-
I tried everything. Now I'm trying to compile the driver but I had this issu. Please, help-me. I'm using Win7 64 bit with Qt 32 bits and MySql 32bit with XAMPP.
wrote on 7 Jan 2018, 13:10 last edited byHi and welcome to devnet forum
Where and when you are getting this error message?
Please post the original error output message.Do you have a library for mysql installed for linking?
Since you are posting in mobile/embedded forum, what is your target platform?
Where did you get the Qt libs from? -
Hi and welcome to devnet forum
Where and when you are getting this error message?
Please post the original error output message.Do you have a library for mysql installed for linking?
Since you are posting in mobile/embedded forum, what is your target platform?
Where did you get the Qt libs from?wrote on 7 Jan 2018, 17:01 last edited by RodrigoFBM 1 Jul 2018, 17:06@koahnig Thnx very much.
The commands and error:
Setting up environment for Qt usage... C:\Qt\5.10.0\mingw53_32>set mysql=C:\MySQL\MyServer C:\Qt\5.10.0\mingw53_32>cd C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql% \\include" "LIBS+=%mysql%\\lib\\libmysql.lib" -o Makefile mysql.pro Cannot read C:/Qt/5.10.0/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: The system cannot find the specified file. Project ERROR: Library 'mysql' is not defined.
I'm have MySql connector C and MySqlServer 5.7 installed and XAMPP.
The target is for Android armv7 -
@koahnig Thnx very much.
The commands and error:
Setting up environment for Qt usage... C:\Qt\5.10.0\mingw53_32>set mysql=C:\MySQL\MyServer C:\Qt\5.10.0\mingw53_32>cd C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql% \\include" "LIBS+=%mysql%\\lib\\libmysql.lib" -o Makefile mysql.pro Cannot read C:/Qt/5.10.0/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: The system cannot find the specified file. Project ERROR: Library 'mysql' is not defined.
I'm have MySql connector C and MySqlServer 5.7 installed and XAMPP.
The target is for Android armv7wrote on 7 Jan 2018, 18:02 last edited by@RodrigoFBM said in Library 'mysql' is not defined.:
The commands and error:
Setting up environment for Qt usage... C:\Qt\5.10.0\mingw53_32>set mysql=C:\MySQL\MyServer
What is the path above?
C:\Qt\5.10.0\mingw53_32>cd C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql
C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql%
\include" "LIBS+=%mysql%\lib\libmysql.lib" -o Makefile mysql.proCannot read C:/Qt/5.10.0/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: The system cannot find the specified file.
Project ERROR: Library 'mysql' is not defined.That looks tome like you are doing MinGW compilation for your desktop,correct?
I'm have MySql connector C and MySqlServer 5.7 installed and XAMPP.
The target is for Android armv7Since you like to use MySql on Android, you would need the mysql for Android as well.
-
@RodrigoFBM said in Library 'mysql' is not defined.:
The commands and error:
Setting up environment for Qt usage... C:\Qt\5.10.0\mingw53_32>set mysql=C:\MySQL\MyServer
What is the path above?
C:\Qt\5.10.0\mingw53_32>cd C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql
C:\Qt\5.10.0\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=%mysql%
\include" "LIBS+=%mysql%\lib\libmysql.lib" -o Makefile mysql.proCannot read C:/Qt/5.10.0/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: The system cannot find the specified file.
Project ERROR: Library 'mysql' is not defined.That looks tome like you are doing MinGW compilation for your desktop,correct?
I'm have MySql connector C and MySqlServer 5.7 installed and XAMPP.
The target is for Android armv7Since you like to use MySql on Android, you would need the mysql for Android as well.
wrote on 7 Jan 2018, 18:50 last edited by@koahnig said in Library 'mysql' is not defined.:
-
Where I've installed the MySql Server.
-
Yes
-
Where do I find MySQL for Android? How to proceed this MySQL in Qt?
-
-
@koahnig said in Library 'mysql' is not defined.:
-
Where I've installed the MySql Server.
-
Yes
-
Where do I find MySQL for Android? How to proceed this MySQL in Qt?
wrote on 7 Jan 2018, 20:41 last edited byYou would need the connector/C++ installed stuff installed and that folder or a subfolder seem to make more sense. However, I have not done that myself yet.
You should be aware that you need to cross-compile Qt and all associated stuff for Android as well. In your case it would be also the mysql connector stuff.
-
-
Hi and welcome to devnet,
Building the MySQL plugin for Android is described here.
-
wrote on 7 Jan 2018, 23:12 last edited by
@SGaist , hey. Thnkx!
I modify the sheel script for:
#!/bin/bash # Usage: ./build_libsqlmariadb.so.sh [clean] # 2016-07-22 T-bond (https://t-bond.hu) Added Windows-MSYS build support, Added clean option, and output to dir. Added temp build dir. Fixed no getpwent error. More cleaner compile output. Skip for already built libs # Based on https://gist.github.com/RazZziel/fd607459c1f07a43cdf9 output_dir="libmariadb_so_output" build_dir="build_libmariadb_temp" export ANDROID_NDK_ROOT="/c/Android/android-ndk-r14b" export QT_ROOT="/c/Qt/5.10.0" SR="$ANDROID_NDK_ROOT/platforms/android-17/arch-arm/" BR="$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-" no_skips=true #Clean build and outputs if [ "$1" = "clean" ]; then echo "Cleaning..." rm -r -f $build_dir $output_dir echo "Cleaned." else pushd () { command pushd "$@" > /dev/null } popd () { command popd "$@" > /dev/null } if [ ! -d $build_dir ]; then mkdir $build_dir fi pushd $build_dir 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.2h.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 if [ ! -f "skip" ] || [ "$no_skips" = true ]; then RANLIB="$BR"ranlib CC="$BR"gcc ./Configure android-armv7 --prefix=$SR/usr ANDROID_DEV=$SR/usr make || exit 1 make build_libs || exit 1 touch skip fi 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 if [ ! -f "skip" ] || [ "$no_skips" = true ]; then #Fix for outdated scripts on Windows T-bond. wget "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" -O new_config.guess wget "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" -O new_config.sub \cp new_config.guess build-aux/config.guess \cp new_config.guess libcharset/build-aux/config.guess \cp new_config.sub build-aux/config.sub \cp new_config.sub libcharset/build-aux/config.sub #Fix for outdated scripts on Windows T-bond. END 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 touch skip fi popd # mariadbclient version=2.0.0 pkg=mariadb_client-$version-src.tar.gz url=http://archive.mariadb.org/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 if [ ! -f "skip" ] || [ "$no_skips" = true ]; then 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 sed -i '/#ifdef HAVE_GETPWNAM/c#if defined(HAVE_GETPWNAM) && defined(HAVE_GETPWENT)' libmariadb/mf_pack.c #T-bond: Fix the no getpwent error. http://forum.kodi.tv/showthread.php?tid=280134 #DCMAKE_CXX_COMPILER DCMAKE_SYSTEM_VERSION DCMAKE_SYSTEM_NAME WINDOWS ONLY!!! if [ ! -d "build" ]; then mkdir build fi 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_SYSTEM_NAME="Android" \ -DCMAKE_SYSTEM_VERSION=1 \ -DCMAKE_CXX_COMPILER="$BR"g++ \ -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 cp build/libmariadb/*.{a,so} "$SR/usr/lib/mariadb/" || exit 1 touch skip fi 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=5.7.0 pkg=qtbase-opensource-src-$qtVersion.tar.gz dir=$(basename $pkg .tar.gz) if [ ! -d $dir ]; then wget -c http://download.qt.io/official_releases/qt/${qtVersion%.*}/$qtVersion/submodules/$pkg tar -xf $pkg || exit 1 fi pushd $dir/src/plugins/sqldrivers/mysql/ $qmake "QMAKE_CXX=$BR"g++ "QMAKE_LINK=$BR"g++ "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 popd if [ ! -d $output_dir ]; then mkdir $output_dir fi cp $SR/usr/lib/mariadb/libmariadb.so $output_dir/libmariadb.so cp $QT_ROOT/android_armv7/plugins/sqldrivers/libqsqlmysql.so $output_dir/libqsqlmysql.so echo echo "BOOYAH!!!" echo fi
and save like android.sh in C:\MinGW\msys\1.0\bin directory.
Then I go to command prompt and type:
cd C:\MinGW\msys\1.0\bin
and then:
sh android.sh
But I get these errors:
android.sh: line 31: mkdir: command not found android.sh: line 23: pushd: build_libmariadb_temp: No such file or directory android.sh: line 35: dirname: command not found FIND: incorrect parameter format
Can you helpe me? :/
-
Are you using a Windows command prompt ?
-
wrote on 30 Jul 2018, 10:42 last edited by
Good afternoon. The topic is old, but still relevant to this day. I decided to try to connect MYSQL for Android.
Article: https://wiki.qt.io/Build_Qt_5_MySQL_Plugin_for_Android
Ct 5.10.1
I write under android
Faced with difficulties.