kactus2 / kactus2dev

Kactus2 is a graphical EDA tool based on the IP-XACT standard.
https://research.tuni.fi/system-on-chip/tools/
GNU General Public License v2.0
191 stars 34 forks source link

[CORRECTIVE] Fix incomplete QObject type and resolves errors #94

Closed vowstar closed 9 months ago

vowstar commented 9 months ago

Under Linux/QT 6.6.1, there are compilation errors due to incomplete type 'QObject' used in nested name specifier in various validator components:

Component/validators/FieldReferenceValidator.cpp: In function ‘void FieldReferenceValidator::findErrorsIn(QStringList&, QSharedPointer<FieldReference>, const QString&)’:
Component/validators/FieldReferenceValidator.cpp:43:35: error: incomplete type ‘QObject’ used in nested name specifier
   43 |         errorList.append(QObject::tr("Field reference in %1 cannot contain both an address space reference"
      |                                   ^~
Component/validators/FieldReferenceValidator.cpp:49:35: error: incomplete type ‘QObject’ used in nested name specifier
   49 |         errorList.append(QObject::tr("Field reference in %1 must contain a reference to a field.").arg(context));
      |                                   ^~
x86_64-pc-linux-gnu-g++ -c -march=znver2 -mtune=znver2 -O2 -pipe -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC -DIPXACTMODELS_LIB -DQT_NO_CAST_FROM_ASCII -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -IGeneratedFiles -I. -I./GeneratedFiles/Release -I.. -I/usr/include/qt6 -I/usr/include/qt6/QtGui -I/usr/include/qt6/QtXml -I/usr/include/qt6/QtCore -IGeneratedFiles/release -I/usr/lib64/qt6/mkspecs/linux-g++ -o release/PowerDomainValidator.o Component/validators/PowerDomainValidator.cpp
make[1]: *** [Makefile:7443: release/FieldReferenceValidator.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Component/validators/MemoryArrayValidator.cpp: In member function ‘void MemoryArrayValidator::findErrorsIn(QStringList&, QSharedPointer<MemoryArray>, const QString&) const’:
Component/validators/MemoryArrayValidator.cpp:40:35: error: incomplete type ‘QObject’ used in nested name specifier
   40 |         errorList.append(QObject::tr("No dimensions defined for memory array in %1").arg(context));
      |                                   ^~
Component/validators/MemoryArrayValidator.cpp:55:35: error: incomplete type ‘QObject’ used in nested name specifier
   55 |         errorList.append(QObject::tr("One or more dimensions of the memory array in %1 have an invalid value.")
      |                                   ^~
Component/validators/MemoryArrayValidator.cpp:61:35: error: incomplete type ‘QObject’ used in nested name specifier
   61 |         errorList.append(QObject::tr("Memory array in %1 has an invalid stride value.").arg(context));
      |                                   ^~
make[1]: *** [Makefile:7772: release/MemoryArrayValidator.o] Error 1