Unsolved How to build MySQL driver for Android?
-
@aha_1980 thank you
-
Hi,
Something is not clear here, your title implies that you are trying to build for Android yet you follow instructions for building desktop version of the plugin.
So what is your end goal ?
-
@SGaist hi. I want build MySQL driver for Android. PLZ HELP)
-
Read this Wiki article
-
@SGaist Will this work for Windows?
-
Since the scripts provided are in bash, you might have some trouble to do that as presented. If that would be the case, then you can still install a virtual machine with Linux on it.
-
This post is deleted! -
i have a similar problem.
i try the option 2 instruction of the wiki article with MSYS on windows.it also runs a few lines and then i get following error:
i have used this shell script modified to my system:
#!/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/users/allerknappe/appdata/local/android/sdk/ndk-bundle" export QT_ROOT="/c/Qt/5.7" 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
for some help im really grateful.
-
Download the source code for libmysqlclient.
https://dev.mysql.com/downloads/connector/c/
Get MSYS2 for Windows. Get cmake. Cross compile the mysql client library using cmake and the GCC for Android you have. Make sure to enable the static output, so later you can build a self contained plugin.
Now you have the static library "libmysqlclient.a" and all include files on the output directory you specified on cmake. When configuring Qt, add the flags for additional include directory (-I) and library directory (-L) using the paths you have. And that's it.
I would also compile Qt for Android using MSYS2 and not Windows Prompt. The "configure" shell script seems to be smarter than the ".bat" one.
-
@Leonardo said in How to build MySQL driver for Android?:
MSYS2
ok at first, thanks for the answer.
but sorry for the question, but how i cross compile the mysql client library using cmake and the GCC for Android and enable the static output ? should not the shell script do it for me?I try already to use the shell script with msys 1.0( not 2) the picture with the error above is msys (not a .bat with the windows prompt)
-
so i try the option 1 in the mysql plugin wiki
i get a problem with cmake, with the following output:
so on, here the cmakeoutput.log:
The system is: Windows - 10.0.16299 - AMD64 Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. Compiler: c:/users/allerknappe/appdata/local/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc Build flags: --sysroot=c:/users/allerknappe/appdata/local/android/sdk/ndk-bundle/platforms/android-9/arch-arm Id flags: The output was: 0 Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" The C compiler identification is GNU, found in "C:/temp/android/mariadb_client-2.0.0-src/build/CMakeFiles/3.10.1/CompilerIdC/a.out"
i was runing this self writen instruction with code in msys1.0, in msys2 it seems to be not working:
first install msys2 and then grep SR=/c/users/allerknappe/appdata/local/android/sdk/ndk-bundle/platforms/android-9/arch-arm BR=/c/users/allerknappe/appdata/local/android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi- cd #to openssl1.0.1e RANLIB="$BR"ranlib CC="$BR"gcc ./Configure android-armv7 --prefix=$SR/usr ANDROID_DEV=$SR/usr make make install cd /c/temp/android/libiconv-1.14_android STRIP="$BR"strip RANLIB="$BR"ranlib OBJDUMP="$BR"objdump AR="$BR"ar CC="$BR"gcc CFLAGS=--sysroot=$SR CPP="$BR"cpp CPPFLAGS=$CFLAGS ./configure --build=x86_64 --host=arm --prefix=$SR/usr --with-sysroot=$SR && make install cd /c/temp/android/mariadb_client-2.0.0-src mkdir build && cd build #Fail in the line after PKG_CONFIG_PATH=$SR/usr/lib/pkgconfig cmake -DCMAKE_AR="$BR"ar -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER="$BR"gcc -DCMAKE_C_FLAGS=--sysroot=$SR -DCMAKE_INSTALL_PREFIX=$SR/usr -DCMAKE_LINKER="$BR"ld -DCMAKE_NM="$BR"nm -DCMAKE_OBJCOPY="$BR"objcopy -DCMAKE_OBJDUMP="$BR"objdump -DCMAKE_RANLIB="$BR"ranlib -DCMAKE_STRIP="$BR"strip -DWITH_EXTERNAL_ZLIB=ON -DICONV_INCLUDE_DIR=$SR/usr/include -DICONV_LIBRARIES=$SR/usr/lib/libiconv.a -DZLIB_INCLUDE_DIR=$SR/usr/include -DZLIB_LIBRARY=$SR/usr/lib/libz.so ../ #in include/my_global.h inside the #define _global_h block: #ifndef ushort #define ushort uint16 #endif make install "$BR"objdump -p libqsqlmysql.so | grep NEEDED #edit libmariadb/CMakeLists.txt and comment out the block: #SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION ${CPACK_PACKAGE_VERSION_MAJOR} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR}) You've to add an external library to your .pro file because the generated plugin depends on libmariadb.so contains(ANDROID_TARGET_ARCH,armeabi-v7a) { ANDROID_EXTRA_LIBS = \ # modify the path $$PWD/../../../mysqllibandroid/mariadb_client-2.0.0-src/build/libmariadb/libmariadb.so }
is maybe something with cmake wrong? but when yes, what?
-
The "configure" from Qt builds the MySQL plugin for Qt. The plugin depends on libmysqlclient, which you should build separately.
Get cmake binaries here:
I'm assuming you may not be used to compiling using a shell. The download above has a GUI with a wizard that might help you cross compile. Use it to generate the Makefile. Then go on msys and type "make".
I have never used the mariadb client. I can only help you with libmysqlclient.
-
ok thanks for the answer.
i tried the last 3 days to make the Driver for Android but the hole scrips and different versions that maybe not working together working for me all not together....
do you can give me a step by step instruction to configure the mysql plugin till the end when i try to make? maybe for you is it easy, but i´m dont know what i will do... -
It's been a while since I've done this process. I was repeating it now to write a step by step tutorial to you and it's much more painful than I could remember... There are many errors and patches to apply along the process. I think it's just easier to share the binary I have obtained with you. I see you're using GCC 4.9. I've used 4.8. Maybe it still works.
https://www.dropbox.com/s/e6ejk3nj1xljzs2/mysql-connector-android.7z?dl=0
When building Qt, just add the following flags:
configure ... -plugin-sql-mysql -I C:/path/to/mysql-connector-android/include -L C:/path/to/mysql-connector-android/lib/
-
ok im really gratefull for your source, so i try on.
After i run the configure statement i got this output:
later i also try to run cmake but i got also an error... -
ok i think i have to set the -xplatform android-g++ option.
if i try this i will answer...update:
i run the configure command in the ms prompt and there it should work...
have i then do additional things? or can i run in the same directory as configure is the make command and thats it? get i then a new .so file for the arch-armv7 folder? -
ok i try another few things but still an error. It´s maybe possible to take a workable libqsqlmysql.so from an other user for my qt 5.7 ?
I have only found a version for qt 5.3.2 and i´m thinking about to downgrade qt if i don´t get another solution... -
What error are you getting? The problem here is that you need a libqsqlmysql.so for Android. You're not likely to find any other out there. Here are all the flags I use when compiling Qt 5.8.0 on MSYS2:
configure -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.8.0/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I D:/src/mysql-bin/android/include -L D:/src/mysql-bin/android/lib/ -openssl -I D:/src/openssl-bin/android/include -android-ndk C:/android/ndk -android-sdk C:/android/sdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -opengl -egl -no-use-gold-linker -shared
-
the error from beginnig with the configure command on the win prompt:
C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\mysql>cd c:/qt/5.7/src c:\Qt\5.7\Src>configure -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -opengl -egl -no-use-gold-linker -shared + cd qtbase + c:\Qt\5.7\Src\qtbase\configure.bat -top-level -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -opengl -egl -no-use-gold-linker -shared Attempting to skip non-existent module qtwebkit-examples. Argument passed to -opengl option is not valid. c:\Qt\5.7\Src>configure -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -egl -no-use-gold-linker -shared + cd qtbase + c:\Qt\5.7\Src\qtbase\configure.bat -top-level -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -egl -no-use-gold-linker -shared Attempting to skip non-existent module qtwebkit-examples. Unknown option -egl c:\Qt\5.7\Src>configure -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -no-use-gold-linker -shared + cd qtbase + c:\Qt\5.7\Src\qtbase\configure.bat -top-level -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -skip qtwebkit-examples -v -no-use-gold-linker -shared Attempting to skip non-existent module qtwebkit-examples. c:\Qt\5.7\Src>configure -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -v -no-use-gold-linker -shared + cd qtbase + c:\Qt\5.7\Src\qtbase\configure.bat -top-level -platform win32-g++ -xplatform android-g++ -prefix C:/Qt/5.7/android -no-icu -no-sql-sqlite -plugin-sql-mysql -I C:\temp\include -L C:\temp\lib\ -openssl -I C:\tools\openssl-1.0.1e\openssl-1.0.1e\include -android-ndk C:\tools\android-ndk-r10b -android-sdk C:\androidsdk -opensource -confirm-license -nomake examples -no-compile-examples -nomake tests -skip qttranslations -skip qtserialport -v -no-use-gold-linker -shared This is the Qt for Android Open Source Edition. You have already accepted the terms of the license. Creating qmake... g++ -c -o qlibraryinfo.o -std=c++11 -DUNICODE -ffunction-sections -g -IC:\Qt\5.7\Src\qtbase/qmake -IC:\Qt\5.7\Src\qtbase/qmake/library -IC:\Qt\5.7\Src\qtbase/qmake/generators -IC:\Qt\5.7\Src\qtbase/qmake/generators/unix -IC:\Qt\5.7\Src\qtbase/qmake/generators/win32 -IC:\Qt\5.7\Src\qtbase/qmake/generators/mac -IC:\Qt\5.7\Src\qtbase/qmake/generators/integrity -IC:\Qt\5.7\Src\qtbase\include -IC:\Qt\5.7\Src\qtbase\include/QtCore -IC:\Qt\5.7\Src\qtbase\include/QtCore/5.7.1 -IC:\Qt\5.7\Src\qtbase\include/QtCore/5.7.1/QtCore -I../src/corelib/global -DHAVE_QCONFIG_CPP -IC:\Qt\5.7\Src\qtbase\mkspecs\win32-g++ -IC:\Qt\5.7\Src\qtbase/tools/shared -DQT_VERSION_STR=\"5.7.1\" -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=7 -DQT_VERSION_PATCH=1 -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DPROEVALUATOR_FULL -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_COMPRESS -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_FOREACH -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 -DQT_JSON_READONLY -DQT_NO_STANDARDPATHS C:\Qt\5.7\Src\qtbase/src/corelib/global/qlibraryinfo.cpp g++ -o "../bin/qmake.exe" project.o option.o property.o main.o ioutils.o proitems.o qmakevfs.o qmakeglobals.o qmakeparser.o qmakeevaluator.o qmakebuiltins.o makefile.o unixmake2.o unixmake.o mingw_make.o winmakefile.o projectgenerator.o meta.o makefiledeps.o metamakefile.o xmloutput.o pbuilder_pbx.o msvc_vcproj.o msvc_vcxproj.o msvc_nmake.o msvc_objectmodel.o msbuild_objectmodel.o cesdkhandler.o qtextcodec.o qutfcodec.o qstring.o qstring_compat.o qstringbuilder.o qtextstream.o qiodevice.o qringbuffer.o qdebug.o qmalloc.o qglobal.o qarraydata.o qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfiledevice.o qfile.o qfilesystementry.o qfilesystemengine.o qfsfileengine.o qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o qmap.o qmetatype.o qsettings.o qsystemerror.o qlibraryinfo.o qvariant.o qvsnprintf.o qlocale.o qlocale_tools.o qlinkedlist.o qnumeric.o qcryptographichash.o qxmlstream.o qxmlutils.o qlogging.o qjson.o qjsondocument.o qjsonparser.o qjsonarray.o qjsonobject.o qjsonvalue.o qfilesystemengine_win.o qfilesystemiterator_win.o qfsfileengine_win.o qlocale_win.o qsettings_win.o qsystemlibrary.o registry.o -static -s -lole32 -luuid -ladvapi32 -lkernel32 Running configuration tests... Das System kann den angegebenen Pfad nicht finden. process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -g -marm -O0 -std=gnu++11 -Wall -W -fPIC -I. -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -IC:\Qt\5.7\Src\qtbase\mkspecs\android-g++ -o arch.obj arch.cpp, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. mingw32-make: *** [arch.obj] Error 2 Could not find output file 'libarch.so' or 'arch' in C:/Qt/5.7/Src/qtbase/config.tests/arch : No such file or directory ..\..\..\bin\qmake.exe C:\Qt\5.7\Src\qtbase\config.tests\common\c++14 Das System kann den angegebenen Pfad nicht finden. mingw32-make process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -g -marm -O0 -std=gnu++14 -Wall -W -fPIC -I. -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -IC:\Qt\5.7\Src\qtbase\mkspecs\android-g++ -o c++14.obj c++14.cpp, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. mingw32-make: *** [c++14.obj] Error 2 ..\..\..\bin\qmake.exe C:\Qt\5.7\Src\qtbase\config.tests\common\c++default Das System kann den angegebenen Pfad nicht finden. mingw32-make ..\..\..\bin\qmake.exe C:\Qt\5.7\Src\qtbase\config.tests\common\atomic64 Das System kann den angegebenen Pfad nicht finden. mingw32-make process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -g -marm -O0 -std=gnu++11 -Wall -W -fPIC -I. -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -IC:\Qt\5.7\Src\qtbase\mkspecs\android-g++ -o atomic64.obj atomic64.cpp, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. mingw32-make: *** [atomic64.obj] Error 2 ..\..\..\bin\qmake.exe C:\Qt\5.7\Src\qtbase\config.tests\common\atomic64 LIBS+=-latomic Das System kann den angegebenen Pfad nicht finden. mingw32-make process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -g -marm -O0 -std=gnu++11 -Wall -W -fPIC -I. -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -IC:\Qt\5.7\Src\qtbase\mkspecs\android-g++ -o atomic64.obj atomic64.cpp, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. mingw32-make: *** [atomic64.obj] Error 2 ..\..\..\bin\qmake.exe C:\Qt\5.7\Src\qtbase\config.tests\common\atomicfptr Das System kann den angegebenen Pfad nicht finden. mingw32-make process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -g -marm -O0 -std=gnu++11 -Wall -W -fPIC -I. -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -IC:\Qt\5.7\Src\qtbase\mkspecs\android-g++ -o atomicfptr.obj atomicfptr.cpp, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. mingw32-make: *** [atomicfptr.obj] Error 2 ERROR: detected an std::atomic implementation that fails for function pointers. Please apply the patch corresponding to your Standard Library vendor, found in C:/Qt/5.7/Src/qtbase/config.tests/common/atomicfptr c:\Qt\5.7\Src>make cd qtbase\ && ( if not exist Makefile C:\Qt\5.7\mingw53_32\bin\qmake.exe C:\Qt\5.7\Src\qtbase\qtbase.pro -o Makefile ) && make -f Makefile make[1]: Entering directory 'c:/Qt/5.7/Src/qtbase' C:\Qt\5.7\Src\qtbase\bin\qmake -o Makefile qtbase.pro Das System kann den angegebenen Pfad nicht finden. cd src\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\src.pro -o Makefile ) && make -f Makefile make[2]: Entering directory 'c:/Qt/5.7/Src/qtbase/src' C:\Qt\5.7\Src\qtbase\bin\qmake -o Makefile src.pro Das System kann den angegebenen Pfad nicht finden. cd tools\bootstrap\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\tools\bootstrap\bootstrap.pro -o Makefile ) && make -f Makefile make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' make -f Makefile.Debug make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' make[4]: Nothing to be done for 'first'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' cd tools\moc\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\tools\moc\moc.pro -o Makefile ) && make -f Makefile make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' make -f Makefile.Debug make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' make[4]: Nothing to be done for 'first'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' cd tools\rcc\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\tools\rcc\rcc.pro -o Makefile ) && make -f Makefile make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' make -f Makefile.Debug make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' make[4]: Nothing to be done for 'first'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' cd 3rdparty\pcre\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\3rdparty\pcre\pcre.pro -o Makefile ) && make -f Makefile make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' C:\Qt\5.7\Src\qtbase\bin\qmake -o Makefile pcre.pro Das System kann den angegebenen Pfad nicht finden. make -f Makefile.Debug all make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-gcc -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -marm -O0 -fPIC -fno-exceptions -fvisibility=hidden -DHAVE_CONFIG_H -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I. -Ic:\temp\include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -I..\..\..\mkspecs\android-g++ -o .obj\debug\pcre16_byte_order.obj pcre16_byte_order.c process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-gcc -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -g -marm -O0 -fPIC -fno-exceptions -fvisibility=hidden -DHAVE_CONFIG_H -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I. -Ic:\temp\include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -I..\..\..\mkspecs\android-g++ -o .obj\debug\pcre16_byte_order.obj pcre16_byte_order.c, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. Makefile.Debug:298: recipe for target '.obj\debug\pcre16_byte_order.obj' failed make[4]: *** [.obj\debug\pcre16_byte_order.obj] Error 2 make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' Makefile:42: recipe for target 'debug-all' failed make[3]: *** [debug-all] Error 2 make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' Makefile:143: recipe for target 'sub-3rdparty-pcre-make_first' failed make[2]: *** [sub-3rdparty-pcre-make_first] Error 2 make[2]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src' Makefile:46: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory 'c:/Qt/5.7/Src/qtbase' Makefile:74: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2 c:\Qt\5.7\Src>make install cd qtbase\ && ( if not exist Makefile C:\Qt\5.7\mingw53_32\bin\qmake.exe C:\Qt\5.7\Src\qtbase\qtbase.pro -o Makefile ) && make -f Makefile install make[1]: Entering directory 'c:/Qt/5.7/Src/qtbase' cd src\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\src.pro -o Makefile ) && make -f Makefile install make[2]: Entering directory 'c:/Qt/5.7/Src/qtbase/src' cd tools\bootstrap\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\tools\bootstrap\bootstrap.pro -o Makefile ) && make -f Makefile install make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' make -f Makefile.Debug install make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' make[4]: Nothing to be done for 'install'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/bootstrap' cd tools\moc\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\tools\moc\moc.pro -o Makefile ) && make -f Makefile install make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' make -f Makefile.Debug install make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' make[4]: Nothing to be done for 'install'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/moc' cd tools\rcc\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\tools\rcc\rcc.pro -o Makefile ) && make -f Makefile install make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' make -f Makefile.Debug install make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' make[4]: Nothing to be done for 'install'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/tools/rcc' cd 3rdparty\pcre\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\3rdparty\pcre\pcre.pro -o Makefile ) && make -f Makefile install make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' make -f Makefile.Debug install make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' make[4]: Nothing to be done for 'install'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' make -f Makefile.Release install make[4]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' make[4]: Nothing to be done for 'install'. make[4]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/3rdparty/pcre' cd corelib\ && ( if not exist Makefile C:\Qt\5.7\Src\qtbase\bin\qmake C:\Qt\5.7\Src\qtbase\src\corelib\corelib.pro -o Makefile ) && make -f Makefile install make[3]: Entering directory 'c:/Qt/5.7/Src/qtbase/src/corelib' C:\Qt\5.7\Src\qtbase\bin\qmake -o Makefile corelib.pro Das System kann den angegebenen Pfad nicht finden. Der Befehl "LC_ALL" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Das System kann den angegebenen Pfad nicht finden. C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -msse2 -mfpmath=sse -g -g -marm -O0 -std=c++1z -Wall -W -Wvla -Wdate-time -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DELF_INTERPRETER=\"\" -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I. -Iglobal -I..\3rdparty\pcre -I..\3rdparty\harfbuzz\src -I..\3rdparty\md5 -I..\3rdparty\md4 -I..\3rdparty\sha3 -I..\3rdparty\double-conversion\include -I..\3rdparty\double-conversion\include\double-conversion -I..\3rdparty\forkfd -I..\..\include -I..\..\include\QtCore -I..\..\include\QtCore\5.7.1 -I..\..\include\QtCore\5.7.1\QtCore -I.moc -Ic:\temp\include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -I..\..\mkspecs\android-g++ tools\qstring_compat.cpp -o .obj\qstring_compat.obj process_begin: CreateProcess(NULL, C:/tools/android-ndk-r10b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows/bin/arm-linux-androideabi-g++ -c -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove --sysroot=C:/tools/android-ndk-r10b/platforms/android-9/arch-arm/ -msse2 -mfpmath=sse -g -g -marm -O0 -std=c++1z -Wall -W -Wvla -Wdate-time -D_REENTRANT -fPIC -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DELF_INTERPRETER=\"\" -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I. -Iglobal -I..\3rdparty\pcre -I..\3rdparty\harfbuzz\src -I..\3rdparty\md5 -I..\3rdparty\md4 -I..\3rdparty\sha3 -I..\3rdparty\double-conversion\include -I..\3rdparty\double-conversion\include\double-conversion -I..\3rdparty\forkfd -I..\..\include -I..\..\include\QtCore -I..\..\include\QtCore\5.7.1 -I..\..\include\QtCore\5.7.1\QtCore -I.moc -Ic:\temp\include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/include -IC:/tools/android-ndk-r10b/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -IC:\tools\android-ndk-r10b\platforms\android-9\arch-arm\usr\include -I..\..\mkspecs\android-g++ tools\qstring_compat.cpp -o .obj\qstring_compat.obj, ...) failed. make (e=2): Das System kann die angegebene Datei nicht finden. Makefile:10712: recipe for target '.obj\qstring_compat.obj' failed make[3]: *** [.obj\qstring_compat.obj] Error 2 make[3]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src/corelib' Makefile:182: recipe for target 'sub-corelib-install_subtargets' failed make[2]: *** [sub-corelib-install_subtargets] Error 2 make[2]: Leaving directory 'c:/Qt/5.7/Src/qtbase/src' Makefile:58: recipe for target 'sub-src-install_subtargets' failed make[1]: *** [sub-src-install_subtargets] Error 2 make[1]: Leaving directory 'c:/Qt/5.7/Src/qtbase' Makefile:86: recipe for target 'module-qtbase-install_subtargets' failed make: *** [module-qtbase-install_subtargets] Error 2
thats only one of few tries
-
Some of these errors are shown because of the "-v" flag. It's the verbose mode. It shows all tests that are made to check which features are available or not. You can remove it, if you want.
Based on the errors, I suppose you're using MinGW, which is somewhat limited. You should try MinGW-w64 (https://mingw-w64.org).
You should also clean your build directory before trying again.
make clean
In fact, you'd better not build it in the source directory. Make a "c:\Qt\5.7\build" directory and call the configuration script from there.
c:\Qt\5.7\build>..\src\configure ......