Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Unable to build for Android with both QMake and CMake
Forum Updated to NodeBB v4.3 + New Features

Unable to build for Android with both QMake and CMake

Scheduled Pinned Locked Moved Solved Mobile and Embedded
androidcmake
2 Posts 1 Posters 2.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    David Demelier
    wrote on 9 Feb 2018, 09:12 last edited by David Demelier 2 Sept 2018, 09:13
    #1

    Hello

    I'm trying to build an application for Android using Qt 5.10, I've followed the articles on:

    http://doc.qt.io/qt-5/android-support.html
    http://wiki.qt.io/Android

    Builts were fine and installed, I've used the following invocations:

    (for amd64)

    ~/qt/configure -xplatform android-g++ --disable-rpath -nomake tests -nomake examples -android-ndk ~/.local/share/ndk-bundle -android-sdk ~/.local/share -android-ndk-host linux-x86_64 -android-toolchain-version 4.9 -skip qttranslations -skip qtserialport -no-warnings-are-errors -prefix ~/.local/lib/qt/x86_64 -android-arch x86_64 -android-ndk-platform android-24 -opensource -confirm-license
    

    (for arm)

    ~/qt/configure -xplatform android-g++ --disable-rpath -nomake tests -nomake examples -android-ndk ~/.local/share/ndk-bundle -android-sdk ~/.local/share -android-ndk-host linux-x86_64 -android-toolchain-version 4.9 -skip qttranslations -skip qtserialport -no-warnings-are-errors -prefix ~/.local/lib/qt/arm -android-arch armeabi-v7a -android-ndk-platform android-24 -opensource -confirm-license
    

    And installed NDK + SDK tools under the following tree:

    • ~/.local/share
      • ndk-bundle
      • platforms
        • android-24
      • system-images
        • android-24
      • emulator
      • android (the tools extracted here)
      • tools (the additional tools)

    I've setup the kits like this:

    alt text

    Using CMake, I get the following error:

        "/home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++"
    
      is not able to compile a simple test program.
    
      It fails with the following output:
    
        Change Dir: /tmp/QtCreator-kKSAbZ/qtc-cmake-XXyhI3dl/CMakeFiles/CMakeTmp
        
        Run Build Command:"/usr/bin/ninja-build" "cmTC_95308"
        [1/2] Building CXX object CMakeFiles/cmTC_95308.dir/testCXXCompiler.cxx.o
        [2/2] Linking CXX executable cmTC_95308
        FAILED: cmTC_95308 
        : && /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ --sysroot=/home/markand/.local/share/ndk-bundle/sysroot    -rdynamic CMakeFiles/cmTC_95308.dir/testCXXCompiler.cxx.o  -o cmTC_95308   && :
        /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
        /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory
        /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lstdc++
        /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lm
        /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lc
        /home/markand/.local/share/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl
        collect2: error: ld returned 1 exit status
        ninja: build stopped: subcommand failed.
    

    Using QMake I get the following error:

    10:10:47: Starting: "/usr/bin/make" 
    /home/markand/.local/share/ndk-bundle/toolchains/x86_64-4.9/prebuilt/linux-x86_64/bin/x86_64-linux-android-g++ -c -D__ANDROID_API__=16 --sysroot=/home/markand/.local/share/ndk-bundle/sysroot -isystem /home/markand/.local/share/ndk-bundle/sysroot/usr/include/x86_64-linux-android -isystem /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include -fstack-protector-strong -DANDROID -g -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../Test -I. -I../../.local/lib/qt/x86_64/include -I../../.local/lib/qt/x86_64/include/QtQuick -I../../.local/lib/qt/x86_64/include/QtGui -I../../.local/lib/qt/x86_64/include/QtQml -I../../.local/lib/qt/x86_64/include/QtNetwork -I../../.local/lib/qt/x86_64/include/QtCore -I. -I../../.local/lib/qt/x86_64/mkspecs/android-g++ -o main.o ../Test/main.cpp
    In file included from /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/random:38:0,
                     from /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/stl_algo.h:66,
                     from /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/algorithm:62,
                     from ../../.local/lib/qt/x86_64/include/QtCore/qglobal.h:110,
                     from ../../.local/lib/qt/x86_64/include/QtGui/qtguiglobal.h:43,
                     from ../../.local/lib/qt/x86_64/include/QtGui/qguiapplication.h:43,
                     from ../../.local/lib/qt/x86_64/include/QtGui/QGuiApplication:1,
                     from ../Test/main.cpp:1:
    /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/cmath:1118:11: error: '::log2' has not been declared
       using ::log2;
               ^
    /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/cmath:1119:11: error: '::log2f' has not been declared
       using ::log2f;
               ^
    /home/markand/.local/share/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/include/cmath:1120:11: error: '::log2l' has not been declared
       using ::log2l;
    

    What do I miss or doing wrong?

    1 Reply Last reply
    0
    • D Offline
      D Offline
      David Demelier
      wrote on 15 Mar 2018, 13:50 last edited by
      #2

      Okay, I've just seen in the Building for android page that at most NDK r10 must be used. I recompiled qt with it and targeting android-21 platform. It works with QMake but with CMake I still get the same error though. Quite a step ahead fortunately :)

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved