Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-115510

undefined reference to `QQuickTextLine::staticMetaObject' when using qmlsc in direct mode

XMLWordPrintable

    • 3cfdac28c (dev), 776b26bb0 (6.6), fb8e24410 (6.5)

      Building the following example with qmlsc in direct mode doesn't work:

      CMakeLists.txt:

      cmake_minimum_required(VERSION 3.16)
      
      project(qmltest VERSION 0.1 LANGUAGES CXX)
      
      set(CMAKE_AUTOMOC ON)
      set(CMAKE_CXX_STANDARD_REQUIRED ON)
      
      find_package(Qt6 6.5 COMPONENTS Quick QuickControls2 REQUIRED)
      
      qt_policy(SET QTP0001 NEW)
      
      qt_add_executable(appqmltest
          main.cpp
      )
      
      qt_add_qml_module(appqmltest
          URI qmltest
          VERSION 1.0
          QML_FILES mymain.qml
          DEPENDENCIES QtQuick
      )
      
      set_target_properties(appqmltest PROPERTIES
          QT_QMLCACHEGEN_EXECUTABLE qmlsc
      )
      
      set_target_properties(appqmltest PROPERTIES
          QT_QMLCACHEGEN_DIRECT_CALLS ON
      )
      
      target_compile_definitions(appqmltest
          PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
      target_link_libraries(appqmltest
          PRIVATE Qt6::Quick Qt6::QuickPrivate Qt6::QuickTemplates2Private)
      
      

       

      mymain.qml:

      import QtQuickText {
          onLineLaidOut: console.log("Hello")
      } 

      Compiler output:

      FAILED: appqmltest  
      : && /usr/bin/g++ -DQT_QML_DEBUG -g  CMakeFiles/appqmltest.dir/appqmltest_autogen/mocs_compilation.cpp.o CMakeFiles/appqmltest.dir/main.cpp.o CMakeFiles/appqmltest.dir/appqmltest_qmltyperegistrations.cpp.o CMake
      Files/appqmltest.dir/.rcc/qrc_qmake_qmltest.cpp.o CMakeFiles/appqmltest.dir/.rcc/qmlcache/appqmltest_qmlcache_loader.cpp.o CMakeFiles/appqmltest.dir/.rcc/qmlcache/appqmltest_mymain_qml.cpp.o CMakeFiles/appqmltes
      t.dir/.rcc/qrc_appqmltest_raw_qml_0.cpp.o -o appqmltest  -Wl,-rpath,/home/nico/Qt/6.6.0/gcc_64/lib  /usr/lib64/libxkbcommon.so  /home/nico/Qt/6.6.0/gcc_64/lib/libQt6QuickTemplates2.so.6.6.0  /home/nico/Qt/6.6.0/
      gcc_64/lib/libQt6Quick.so.6.6.0  /home/nico/Qt/6.6.0/gcc_64/lib/libQt6OpenGL.so.6.6.0  /home/nico/Qt/6.6.0/gcc_64/lib/libQt6Gui.so.6.6.0  /usr/lib64/libGLX.so  /usr/lib64/libOpenGL.so  /home/nico/Qt/6.6.0/gcc_64
      /lib/libQt6QmlModels.so.6.6.0  /home/nico/Qt/6.6.0/gcc_64/lib/libQt6Qml.so.6.6.0  /home/nico/Qt/6.6.0/gcc_64/lib/libQt6Network.so.6.6.0  /home/nico/Qt/6.6.0/gcc_64/lib/libQt6Core.so.6.6.0 && :
      
      /usr/bin/ld: CMakeFiles/appqmltest.dir/.rcc/qmlcache/appqmltest_mymain_qml.cpp.o: in function `QtPrivate::MetaObjectForType<QQuickTextLine*, void>::metaObjectFunction(QtPrivate::QMetaTypeInterface const*)':
      
      /home/nico/Qt/6.6.0/gcc_64/include/QtCore/qmetatype.h:980: undefined reference to `QQuickTextLine::staticMetaObject'
      
      collect2: error: ld returned 1 exit status
      
      ninja: build stopped: subcommand failed.
      

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            ulherman Ulf Hermann
            nicolasfella Nicolas Fella
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes