Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Problems Qt 5.15.2 / cmake and Android project
Forum Updated to NodeBB v4.3 + New Features

Problems Qt 5.15.2 / cmake and Android project

Scheduled Pinned Locked Moved Solved German
15 Posts 3 Posters 2.2k Views 1 Watching
  • 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.
  • Christian EhrlicherC Online
    Christian EhrlicherC Online
    Christian Ehrlicher
    Lifetime Qt Champion
    wrote on last edited by
    #6

    Das muss von deinen CMake-files kommen

    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
    Visit the Qt Academy at https://academy.qt.io/catalog

    M 1 Reply Last reply
    0
    • J.HilkJ J.Hilk

      @msauer75
      Keine Ahnung ob es da für cmake einen unterschied gibt, vielleicht 🤷‍♂️, aber für qmake als buildsystem kann man das in den "Build Settings" tab einstellen.

      • Linke Seite options Punkt "Projekt"
      • Android Paket auswählen
      • Build Steps -> ABI's checkbox gewünscht setzen

      af294975-2ed1-4cb4-b133-77a6aecf8d4d-image.png

      wenn du schon da bist, stelle sicher, dass die Checkbox "Shadow build" gecheckt ist, sollte deinen Fehler beheben

      849374e4-ab9d-48c6-a784-dd3e5c5847e5-image.png

      J.HilkJ Offline
      J.HilkJ Offline
      J.Hilk
      Moderators
      wrote on last edited by
      #7

      @J-Hilk said in Problems Qt 5.15.2 / cmake and Android project:

      @msauer75

      849374e4-ab9d-48c6-a784-dd3e5c5847e5-image.png

      ist der Harken gesetzt?
      weil die Meldung

      The existing target is a custom target created in source directory

      lässt mich glauben das du ein in source build machst.


      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


      Q: What's that?
      A: It's blue light.
      Q: What does it do?
      A: It turns blue.

      1 Reply Last reply
      0
      • Christian EhrlicherC Christian Ehrlicher

        Das muss von deinen CMake-files kommen

        M Offline
        M Offline
        msauer75
        wrote on last edited by
        #8

        @Christian-Ehrlicher

        Ok. Du hast Recht. Ich habe ein Projekt das eine APP hat und aus mehreren Libraries besteht.

        Das ist das Haupt CMakeLists.txt:

        cmake_minimum_required(VERSION 3.14)
        
        set(APP "qt_gc")
        
        message("CMAKE fuer project: " ${APP})
        
        if (WIN32)
            set(SSLDIR "d:/Programme/Qt/Tools/OpenSSL/Win_x64/bin/")
            set(SSLLIB1 "crypto-1_1-x64")
            set(SSLLIB2 "ssl-1_1-x64")
            message("    WIN32: SSLDIR=" ${SSLDIR})
            message("    WIN32: SSLLIB=" ${SSLLIB1} " " ${SSLLIB2})
        endif ()
        
        if (ANDROID)
            message("   ANDROID: ")
        endif ()
        
        project(${APP} VERSION 1.0.0 LANGUAGES CXX)
        
        set(CMAKE_BINARY_DIR "${CMAKE_SOURCE_DIR}/_Builds/${CMAKE_BUILD_TYPE}")
        set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
        set(LIBTYP "SHARED")
        
        add_subdirectory(lib-datad)
        add_subdirectory(lib-db)
        

        Dies ist von lib-datad:

        cmake_minimum_required(VERSION 3.14)
        
        set(LIB "datad")
        set(LIBDEF "LIBDATAD_LIBRARY")
        
        message("CMAKE fuer project: lib" ${LIB})
        
        project(lib-${LIB} VERSION 1.0.0 LANGUAGES CXX)
        
        set(CMAKE_INCLUDE_CURRENT_DIR ON)
        set(CMAKE_CXX_STANDARD 11)
        set(CMAKE_CXX_STANDARD_REQUIRED ON)
        set(CMAKE_AUTOMOC ON)
        set(CMAKE_AUTORCC ON)
        set(CMAKE_AUTOUIC ON)
        
        find_package(Qt5 COMPONENTS Core REQUIRED)
        find_package(Qt5 COMPONENTS Qml  REQUIRED)
        
        include_directories("source/")
        include_directories("source/helper")
        
        set(SOURCES
            source/data-decorator.cpp
            source/bool-decorator.cpp
        )
        
        add_library(${LIB} ${LIBTYP} ${SOURCES})
        
        target_link_libraries(
            ${LIB}
                Qt5::Core
            )
        
        target_compile_definitions(${LIB} PRIVATE ${LIBDEF})
        target_compile_definitions(${LIB} PUBLIC "QT_DEPRECATED_WARNINGS")
        

        Und das von lib-db:

        cmake_minimum_required(VERSION 3.14)
        
        set(LIB "db")
        set(LIBDEF "LIBDB_LIBRARY")
        
        message("CMAKE fuer project: lib" ${LIB})
        
        project(lib-${LIB} VERSION 1.0.0 LANGUAGES CXX)
        
        set(CMAKE_CXX_STANDARD 11)
        set(CMAKE_CXX_STANDARD_REQUIRED ON)
        set(CMAKE_AUTOMOC ON)
        set(CMAKE_AUTORCC ON)
        set(CMAKE_AUTOUIC ON)
        
        find_package(Qt5 COMPONENTS Core REQUIRED)
        find_package(Qt5 COMPONENTS Sql REQUIRED)
        
        include_directories("source/")
        
        set(SOURCES
            source/database.cpp
            
            source/database.h
            source/lib-db_global.h
        )
        
        if (ANDROID)
            message("ANDROID: ")
        endif()
        
        add_library(${LIB} ${LIBTYP} ${SOURCES})
        
        target_link_libraries(
            ${LIB} 
                Qt5::Core
                Qt5::Sql
        )
        
        target_compile_definitions(${LIB} PRIVATE ${LIBDEF})
        target_compile_definitions(${LIB} PUBLIC "QT_DEPRECATED_WARNINGS")
        

        Wenn ich alle Unterprojekt aus dem Haupt CMakeLists.txt entferne, dann kann er die Build Dateien erstellen. Sobald ich das zweite (lib-db) hinzufüge kommt dieser Fehler.
        Ich habe einfach mal ein leeres QtQuick Projekt erzeugt, um mir das dortige CMakeLists.txt anzuschauen. Kann aber weiter keinen Unterschied finden.

        Weist du wo das Problem liegen könnte?
        Danke für Eure Hilfe.

        gruss
        martin

        1 Reply Last reply
        0
        • Christian EhrlicherC Online
          Christian EhrlicherC Online
          Christian Ehrlicher
          Lifetime Qt Champion
          wrote on last edited by Christian Ehrlicher
          #9

          Oh, das sieht ja echt nach einem suboptimalen Konstrukt in Qt5AndroidSupport.cmake aus - man kann diese Datei offensichtlich nicht zweimal inkludieren (was bei Dir indirekt passiert).
          Nimm bitte mal die project() - Zeilen in beiden libs raus - vielleicht reicht das schon damit cmake merkt dass es die Datei schon einmal geparst hat.

          Siehe https://bugreports.qt.io/browse/QTBUG-87863 und der Patch hier: https://codereview.qt-project.org/c/qt/tqtc-qtbase/+/364205/2/src/corelib/Qt5AndroidSupport.cmake

          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
          Visit the Qt Academy at https://academy.qt.io/catalog

          M 1 Reply Last reply
          1
          • Christian EhrlicherC Christian Ehrlicher

            Oh, das sieht ja echt nach einem suboptimalen Konstrukt in Qt5AndroidSupport.cmake aus - man kann diese Datei offensichtlich nicht zweimal inkludieren (was bei Dir indirekt passiert).
            Nimm bitte mal die project() - Zeilen in beiden libs raus - vielleicht reicht das schon damit cmake merkt dass es die Datei schon einmal geparst hat.

            Siehe https://bugreports.qt.io/browse/QTBUG-87863 und der Patch hier: https://codereview.qt-project.org/c/qt/tqtc-qtbase/+/364205/2/src/corelib/Qt5AndroidSupport.cmake

            M Offline
            M Offline
            msauer75
            wrote on last edited by
            #10

            @Christian-Ehrlicher
            Danke dir für den Hinweis. das project() ausklammern hat nichts gebracht. Wenn ich auf den Link mit der Bug Solution gehe, bekomme ich nur einen 404 Error.

            martin

            1 Reply Last reply
            0
            • Christian EhrlicherC Online
              Christian EhrlicherC Online
              Christian Ehrlicher
              Lifetime Qt Champion
              wrote on last edited by Christian Ehrlicher
              #11

              Du meinst mein zweiter Link geht bei dir nicht?

              Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
              Visit the Qt Academy at https://academy.qt.io/catalog

              M 1 Reply Last reply
              0
              • Christian EhrlicherC Christian Ehrlicher

                Du meinst mein zweiter Link geht bei dir nicht?

                M Offline
                M Offline
                msauer75
                wrote on last edited by
                #12

                @Christian-Ehrlicher

                60047f3d-b61d-47da-8fea-9a38f60937f9-grafik.png

                Ja.

                J.HilkJ 1 Reply Last reply
                0
                • M msauer75

                  @Christian-Ehrlicher

                  60047f3d-b61d-47da-8fea-9a38f60937f9-grafik.png

                  Ja.

                  J.HilkJ Offline
                  J.HilkJ Offline
                  J.Hilk
                  Moderators
                  wrote on last edited by
                  #13

                  @msauer75

                  auf der Seite, oben rechts steht da login ?

                  wenn ja, log dich ein, mit dem selben Daten wie auch hier im Forum.

                  Schau mal, ob es dann angezeigt wird


                  Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                  Q: What's that?
                  A: It's blue light.
                  Q: What does it do?
                  A: It turns blue.

                  1 Reply Last reply
                  0
                  • Christian EhrlicherC Online
                    Christian EhrlicherC Online
                    Christian Ehrlicher
                    Lifetime Qt Champion
                    wrote on last edited by
                    #14

                    Ach das ist dumm. Kannst Du etwas cmake?
                    Wie du in https://sources.debian.org/src/qtbase-opensource-src/5.15.2+dfsg-14/src/corelib/Qt5AndroidSupport.cmake Zeile 126 ud 135 siehst wird dort ein custom target angelegt. Wird die Datei mehr als einmal inkludiert kommt es zu dem Fehler. Deshalb musst du die beiden add_custom_target() - Aufrufe jeweils mit einer Bedingung in der Form if (NOT TARGET xxx) ausstatten so dass es nur einmal erzeugt wird.

                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                    Visit the Qt Academy at https://academy.qt.io/catalog

                    M 1 Reply Last reply
                    1
                    • Christian EhrlicherC Christian Ehrlicher

                      Ach das ist dumm. Kannst Du etwas cmake?
                      Wie du in https://sources.debian.org/src/qtbase-opensource-src/5.15.2+dfsg-14/src/corelib/Qt5AndroidSupport.cmake Zeile 126 ud 135 siehst wird dort ein custom target angelegt. Wird die Datei mehr als einmal inkludiert kommt es zu dem Fehler. Deshalb musst du die beiden add_custom_target() - Aufrufe jeweils mit einer Bedingung in der Form if (NOT TARGET xxx) ausstatten so dass es nur einmal erzeugt wird.

                      M Offline
                      M Offline
                      msauer75
                      wrote on last edited by
                      #15

                      @Christian-Ehrlicher

                      Ok. Danke dir für deine Hilfe. Nachdem ich das Android.cmake gepatch habe funktioniert es.
                      Auch mit einem Login bekomme ich auf der Seite nur ein 404.

                      1 Reply Last reply
                      1

                      • Login

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