I cannot get rid of the error "Undefined reference to vtable" when compiling my Linux desktop application.
I did find the threadUndefined reference to vtable
I have a
set(CMAKE_AUTOMOC ON)
in my CMakeLists.txtbut I receive
AutoMoc warning---------------"SRC:/QtGUI/BASIC/SimulatorWindowBasic.cpp"includes the moc file "SimulatorWindowBasic.moc", but does not contain a Q_OBJECT, Q_GADGET, Q_GADGET_EXPORT, Q_NAMESPACE or Q_NAMESPACE_EXPORT macro.
despite that my definition containsa Q_Object.At the end of build, I receive the feared message
/usr/bin/ld: CMakeFiles/Basic_GUI.dir/Basic_GUI.cpp.o: in function `main':/Myhome/main/BASIC/Basic_GUI.cpp:6: undefined reference to `SimulatorWindowBasic::SimulatorWindowBasic(int, char**, QWidget*)'/usr/bin/ld: CMakeFiles/Basic_GUI.dir/Basic_GUI.cpp.o: in function `SimulatorWindowBasic::~SimulatorWindowBasic()':
What do I wrong?Below I show my relevant sources.
(in my previous install using Qt5 and Ubuntu 20.04I did not experience this issue. The present install uses Ubuntu 22.04 and Qt 6.4.2)
#ifndef SimulatorWindowBasic_H#define SimulatorWindowBasic_H#include <QMainWindow>namespace Ui {class SimulatorWindowBasic;}class SimulatorWindowBasic : public QMainWindow{ Q_OBJECTpublic: explicit SimulatorWindowBasic(int argc, char **argv, QWidget *parent = 0); virtual ~SimulatorWindowBasic();protected: Ui::SimulatorWindowBasic *ui;};#endif // SimulatorWindowBasic_H
and
#include "SimulatorWindowBasic.moc"#include "SimulatorWindowBasic.h"#include "uiSimulatorWindowBasic.h"SimulatorWindowBasic::SimulatorWindowBasic(int argc, char **argv, QWidget *parent) : QMainWindow(parent), ui(new Ui::SimulatorWindowBasic){ ui->setupUi(this); // This creates the basic splitters } SimulatorWindowBasic::~SimulatorWindowBasic { }