Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Link Error when inherit from QQuickGridView
Forum Updated to NodeBB v4.3 + New Features

Link Error when inherit from QQuickGridView

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
9 Posts 2 Posters 914 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.
  • M Offline
    M Offline
    Manohar Raju
    wrote on last edited by
    #1

    I am defining new cIass which is deriving from QQuickGridView to override some of base functions, but getting link failed errors.
    Anybody who can help?

    #include <QtGlobal>
    #include <private/qquickgridview_p.h>

    GridViewQuickItemGeneric::GridViewQuickItemGeneric(QQuickItem* parent)
    : QQuickGridView(parent)
    {}

    bool GridViewQuickItemGeneric::refreshDrawing()
    {
    return true;
    }

    Getting below link errors
    mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QQuickGridView::staticMetaObject" (?staticMetaObject@QQuickGridView@@2UQMetaObject@@B)
    mocs_compilation.cpp.obj : error LNK2019: unresolved external symbol "public: virtual void * __cdecl QQuickGridView::qt_metacast(char const *)" (?qt_metacast@QQuickGridView@@UEAAPEAXPEBD@Z) referenced in function "public: virtual void * __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::qt_metacast(char const *)" (?qt_metacast@GridViewQuickItemGeneric@RHQt@HmiGfx@@UEAAPEAXPEBD@Z)
    mocs_compilation.cpp.obj : error LNK2019: unresolved external symbol "public: virtual int __cdecl QQuickGridView::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QQuickGridView@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z) referenced in function "public: virtual int __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GridViewQuickItemGeneric@RHQt@HmiGfx@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl QQuickGridView::QQuickGridView(class QQuickItem *)" (??0QQuickGridView@@QEAA@PEAVQQuickItem@@@Z) referenced in function "public: __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::GridViewQuickItemGeneric(class QQuickItem *)" (??0GridViewQuickItemGeneric@RHQt@HmiGfx@@QEAA@PEAVQQuickItem@@@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl QQuickGridView::~QQuickGridView(void)" (??1QQuickGridView@@UEAA@XZ) referenced in function "public: virtual __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::~GridViewQuickItemGeneric(void)" (??1GridViewQuickItemGeneric@RHQt@HmiGfx@@UEAA@XZ)
    GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl QQuickGridView::setHighlightFollowsCurrentItem(bool)" (?setHighlightFollowsCurrentItem@QQuickGridView@@UEAAX_N@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl QQuickGridView::setHighlightMoveDuration(int)" (?setHighlightMoveDuration@QQuickGridView@@UEAAXH@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::viewportMoved(class QFlags<enum Qt::Orientation>)" (?viewportMoved@QQuickGridView@@MEAAXV?$QFlags@W4Orientation@Qt@@@@@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::keyPressEvent(class QKeyEvent *)" (?keyPressEvent@QQuickGridView@@MEAAXPEAVQKeyEvent@@@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::geometryChanged(class QRectF const &,class QRectF const &)" (?geometryChanged@QQuickGridView@@MEAAXAEBVQRectF@@0@Z)
    GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::initItem(int,class QObject *)" (?initItem@QQuickGridView@@MEAAXHPEAVQObject@@@Z)

    But When i inherit from QQuickTableView, I didn't get any link error.

    Thanks in advance.

    jsulmJ 1 Reply Last reply
    0
    • M Manohar Raju

      I am defining new cIass which is deriving from QQuickGridView to override some of base functions, but getting link failed errors.
      Anybody who can help?

      #include <QtGlobal>
      #include <private/qquickgridview_p.h>

      GridViewQuickItemGeneric::GridViewQuickItemGeneric(QQuickItem* parent)
      : QQuickGridView(parent)
      {}

      bool GridViewQuickItemGeneric::refreshDrawing()
      {
      return true;
      }

      Getting below link errors
      mocs_compilation.cpp.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QQuickGridView::staticMetaObject" (?staticMetaObject@QQuickGridView@@2UQMetaObject@@B)
      mocs_compilation.cpp.obj : error LNK2019: unresolved external symbol "public: virtual void * __cdecl QQuickGridView::qt_metacast(char const *)" (?qt_metacast@QQuickGridView@@UEAAPEAXPEBD@Z) referenced in function "public: virtual void * __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::qt_metacast(char const *)" (?qt_metacast@GridViewQuickItemGeneric@RHQt@HmiGfx@@UEAAPEAXPEBD@Z)
      mocs_compilation.cpp.obj : error LNK2019: unresolved external symbol "public: virtual int __cdecl QQuickGridView::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QQuickGridView@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z) referenced in function "public: virtual int __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@GridViewQuickItemGeneric@RHQt@HmiGfx@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl QQuickGridView::QQuickGridView(class QQuickItem *)" (??0QQuickGridView@@QEAA@PEAVQQuickItem@@@Z) referenced in function "public: __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::GridViewQuickItemGeneric(class QQuickItem *)" (??0GridViewQuickItemGeneric@RHQt@HmiGfx@@QEAA@PEAVQQuickItem@@@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl QQuickGridView::~QQuickGridView(void)" (??1QQuickGridView@@UEAA@XZ) referenced in function "public: virtual __cdecl HmiGfx::RHQt::GridViewQuickItemGeneric::~GridViewQuickItemGeneric(void)" (??1GridViewQuickItemGeneric@RHQt@HmiGfx@@UEAA@XZ)
      GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl QQuickGridView::setHighlightFollowsCurrentItem(bool)" (?setHighlightFollowsCurrentItem@QQuickGridView@@UEAAX_N@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl QQuickGridView::setHighlightMoveDuration(int)" (?setHighlightMoveDuration@QQuickGridView@@UEAAXH@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::viewportMoved(class QFlags<enum Qt::Orientation>)" (?viewportMoved@QQuickGridView@@MEAAXV?$QFlags@W4Orientation@Qt@@@@@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::keyPressEvent(class QKeyEvent *)" (?keyPressEvent@QQuickGridView@@MEAAXPEAVQKeyEvent@@@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::geometryChanged(class QRectF const &,class QRectF const &)" (?geometryChanged@QQuickGridView@@MEAAXAEBVQRectF@@0@Z)
      GridViewQuickItemGeneric.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl QQuickGridView::initItem(int,class QObject *)" (?initItem@QQuickGridView@@MEAAXHPEAVQObject@@@Z)

      But When i inherit from QQuickTableView, I didn't get any link error.

      Thanks in advance.

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @Manohar-Raju Please show the header file of your class

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Manohar Raju
        wrote on last edited by
        #3

        @jsulm

        Here is my header file
        #ifndef GRIDVIEWQUICKITEMGENERIC_H
        #define GRIDVIEWQUICKITEMGENERIC_H

        #include <QtGlobal>
        #include <private/qquickgridview_p.h> // for qquickgridview

        class GridViewQuickItemGeneric : public QQuickGridView
        {
        Q_OBJECT
        public:
        explicit GridViewQuickItemGeneric(QQuickItem* parent = nullptr);
        ~GridViewQuickItemGeneric() override = default;

        bool refreshDrawing();
        

        };
        #endif // GRIDVIEWQUICKITEMGENERIC_H

        jsulmJ 1 Reply Last reply
        0
        • M Manohar Raju

          @jsulm

          Here is my header file
          #ifndef GRIDVIEWQUICKITEMGENERIC_H
          #define GRIDVIEWQUICKITEMGENERIC_H

          #include <QtGlobal>
          #include <private/qquickgridview_p.h> // for qquickgridview

          class GridViewQuickItemGeneric : public QQuickGridView
          {
          Q_OBJECT
          public:
          explicit GridViewQuickItemGeneric(QQuickItem* parent = nullptr);
          ~GridViewQuickItemGeneric() override = default;

          bool refreshDrawing();
          

          };
          #endif // GRIDVIEWQUICKITEMGENERIC_H

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @Manohar-Raju Did you try a complete rebuild: delete build folder, run qmake and build?

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Manohar Raju
            wrote on last edited by
            #5

            @jsulm Yeah, I did clean build by deleting build folder but no use. Still getting same link error.

            jsulmJ 1 Reply Last reply
            0
            • M Manohar Raju

              @jsulm Yeah, I did clean build by deleting build folder but no use. Still getting same link error.

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @Manohar-Raju Can you show your pro file?

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • M Offline
                M Offline
                Manohar Raju
                wrote on last edited by
                #7

                @jsulm
                I have removed company related files and macros from CmakeFile.txt and here copied the generic file.

                CMAKE_MINIMUM_REQUIRED(VERSION 3.14.3 FATAL_ERROR)

                project(GfxQtRH)
                SET(PROJECT_NAME_BACKUP ${PROJECT_NAME})
                SET(PROJECT_NAME ${PROJECT_NAME}_objectlib)

                SET(QMLRESOURCES)
                find_package(Qt5Quick REQUIRED)
                if(Qt5QuickCompiler_FOUND)
                message(STATUS "Qt5QuickCompiler found, using it")
                qtquick_compiler_add_resources(QMLRESOURCES ${quickcompiler_qrcfiles})
                else()
                qt5_add_resources(QMLRESOURCES ${quickcompiler_qrcfiles})
                endif()

                target_sources(${PROJECT_NAME} PRIVATE
                "GridViewQuickItemGeneric.cpp"

                target_sources(${PROJECT_NAME} PRIVATE
                "GridViewQuickItemGeneric.h"

                RTIL_LINK_LIBRARIES(
                Qt5::Quick Qt5::QuickPrivate
                Qt5::Gui Qt5::GuiPrivate
                Qt5::Core Qt5::CorePrivate
                Qt5::Qml Qt5::QmlPrivate
                Qt5::Network Qt5::Widgets
                Qt5::Svg Qt5::QuickTemplates2Private
                )

                jsulmJ 1 Reply Last reply
                0
                • M Manohar Raju

                  @jsulm
                  I have removed company related files and macros from CmakeFile.txt and here copied the generic file.

                  CMAKE_MINIMUM_REQUIRED(VERSION 3.14.3 FATAL_ERROR)

                  project(GfxQtRH)
                  SET(PROJECT_NAME_BACKUP ${PROJECT_NAME})
                  SET(PROJECT_NAME ${PROJECT_NAME}_objectlib)

                  SET(QMLRESOURCES)
                  find_package(Qt5Quick REQUIRED)
                  if(Qt5QuickCompiler_FOUND)
                  message(STATUS "Qt5QuickCompiler found, using it")
                  qtquick_compiler_add_resources(QMLRESOURCES ${quickcompiler_qrcfiles})
                  else()
                  qt5_add_resources(QMLRESOURCES ${quickcompiler_qrcfiles})
                  endif()

                  target_sources(${PROJECT_NAME} PRIVATE
                  "GridViewQuickItemGeneric.cpp"

                  target_sources(${PROJECT_NAME} PRIVATE
                  "GridViewQuickItemGeneric.h"

                  RTIL_LINK_LIBRARIES(
                  Qt5::Quick Qt5::QuickPrivate
                  Qt5::Gui Qt5::GuiPrivate
                  Qt5::Core Qt5::CorePrivate
                  Qt5::Qml Qt5::QmlPrivate
                  Qt5::Network Qt5::Widgets
                  Qt5::Svg Qt5::QuickTemplates2Private
                  )

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @Manohar-Raju If you use CMake then set https://cmake.org/cmake/help/latest/prop_tgt/AUTOMOC.html

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    Manohar Raju
                    wrote on last edited by
                    #9

                    @jsulm I am already setting automac as below

                    SET(CMAKE_INCLUDE_CURRENT_DIR ON)

                    Instruct CMake to run moc automatically when needed.

                    SET(CMAKE_AUTOMOC ON)

                    add_compile_definitions(
                    TRACEMESSAGE_USE_QT
                    QT_NO_CAST_FROM_ASCII
                    QT_NO_CAST_TO_ASCII
                    )

                    Sorry i missed to copy these lines in earlier post. But i am setting these flags. With this macros also getting link error.

                    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