QtQuick kompilieren



  • Hallo zusammen,
    ich möchte ein Projekt deployen und dazu den QtQuick-Code kompilieren. Allerdings komme ich hier etwas durcheinander mit der Qt-Doku und dem was mir Qt6 so bietet.

    Zunächst mal habe ich in den Qt Docs geschaut wie das Ganze funktionieren soll. Dort fand ich folgendes:
    https://doc.qt.io/qt-6/qtquick-deployment.html. Darin steht zunächst, dass man unter Verwendung von CMake
    find_package(Qt5QuickCompiler) aufrufen soll. Und schon da scheitert es:

    By not providing "FindQt5QuickCompiler.cmake" in CMAKE_MODULE_PATH this
      project has asked CMake to find a package configuration file provided by
      "Qt5QuickCompiler", but CMake did not find one.
    
      Could not find a package configuration file provided by "Qt5QuickCompiler"
      with any of the following names:
    
        Qt5QuickCompilerConfig.cmake
        qt5quickcompiler-config.cmake
    
      Add the installation prefix of "Qt5QuickCompiler" to CMAKE_PREFIX_PATH or
      set "Qt5QuickCompiler_DIR" to a directory containing one of the above
      files.  If "Qt5QuickCompiler" provides a separate development package or
      SDK, be sure it has been installed.
    

    Da ich Qt6 verwende hab ich natürlich auch find_package(Qt6QuickCompiler), mit dem gleichen Ergebnis. Ich habe also mal mein Qt-Verzeichnis durchsucht und bin lediglich auf eine Qt6QuickCompilerConfig.cmake.in gestoßen.
    Darin steht:

    function(QTQUICK_COMPILER_ADD_RESOURCES)
        message(WARNING "Use qt6_add_resources instead of qtquick_compiler_add_resources."
                        "QML and JavaScript files are automatically compiled then.")
    endfunction()
    

    Also verstehe ich das richtig? Ich benötige den Qt6QuickCompiler gar nicht mehr? Klingt ja ganz so, aber ich kann mir nicht vorstellen, dass die Doku so weit hinterher ist? Zusätzlich muss ich meiner Binary den Ordner "QtQuick" beilegen welcher wiederum etwas tiefer .qml Dateien enthält ohne die ich die Anwendung nicht starten kann. Ich bin davon ausgegangen so etwas würde durch das kompilieren ebenfalls wegfallen?

    Vielleicht kennt sich ja jemand mit dem QML Deploying aus 😁


  • Gesperrt

    @Zhavok sagte in QtQuick kompilieren:

    Add the installation prefix of "Qt5QuickCompiler" to CMAKE_PREFIX_PATH

    Ich verstehe zwar nicht die ganze Frage, aber ich habe zur Zeit Qt6 mit CMake einem Projekt so hinzugefügt. Also nicht über das Verzeichnis wo die Datei Find<PackageName>.cmake ist, was - soweit ich mich erinnere - immer nach weiteren solchen Dateien fragte:

    set(QT_INSTALLATION_PREFIX CACHE PATH "Set your CMAKE_PREFIX_PATH environment variable to the Qt installation prefix (e.g. /Qt/6.0.0/msvc2019_64)")
    list(APPEND CMAKE_PREFIX_PATH ${QT_INSTALLATION_PREFIX})
    message("QT_INSTALLATION_PREFIX: ${QT_INSTALLATION_PREFIX}")
    message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
    
    find_package(Qt6 COMPONENTS Widgets REQUIRED)
    
    target_link_libraries(Decade PRIVATE Qt6::Widgets)
    
    target_include_directories(Decade PRIVATE Qt6Widgets_INCLUDE_DIRS)
    message("Qt6Widgets_INCLUDE_DIRS: ${Qt6Widgets_INCLUDE_DIRS}")
    
    add_custom_command(
        TARGET Decade
        POST_BUILD
        COMMAND ${QT_INSTALLATION_PREFIX}/bin/qtenv2.bat 
        COMMAND ${QT_INSTALLATION_PREFIX}/bin/windeployqt.exe ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
    	)
    


  • Vielen Dank für deine Antwort @titan99_ , allerdings bezieht sich meine Frage auf das kompilieren von QtQuick Projekten und nicht auf QtWidgets. Bei QtQuick schreibt man den FrontendCode in QML. Mein Ziel ist es nun dieses direkt in die Binary mit zu kompilieren 😄


  • Gesperrt

    @Zhavok sagte in QtQuick kompilieren:

    Vielen Dank für deine Antwort @titan99_ , allerdings bezieht sich meine Frage auf das kompilieren von QtQuick Projekten und nicht auf QtWidgets

    Meine Antwort bezog sich auch nur auf diese Fehlermeldung:

    @Zhavok sagte in QtQuick kompilieren:

    Add the installation prefix of "Qt5QuickCompiler" to CMAKE_PREFIX_PATH

    Also eigentlich nur auf Add the installation prefix of "Qt..." to CMAKE_PREFIX_PATH


Anmelden zum Antworten