PDA

View Full Version : CentOS make error for RC1



kimmel
11-18-2020, 08:42 AM
I tried to install seq6 rc1 and get the following error on CentOS Linux release 7.8.2003 (Core) and gnome. Been running seq5 for months but can't get seq6 make command to complete. Below is the output from the make command after makefile and ./configure

Any ideas on what to try?


make all-recursive
make[1]: Entering directory `/root/showeq6'
Making all in src
make[2]: Entering directory `/root/showeq6/src'
g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include -I/usr/include/Qt -I/usr/include/Qt3Support -I/usr/include/QtCore -I/usr/include/QtDBus -I/usr/include/QtDeclarative -I/usr/include/QtDesigner -I/usr/include/QtGui -I/usr/include/QtHelp -I/usr/include/QtMultimedia -I/usr/include/QtNetwork -I/usr/include/QtOpenGL -I/usr/include/QtScript -I/usr/include/QtScriptTools -I/usr/include/QtSql -I/usr/include/QtSvg -I/usr/include/QtTest -I/usr/include/QtUiTools -I/usr/include/QtXml -I/usr/include/QtXmlPatterns -I. -DPKGDATADIR=\"/usr/local/share/showeq/\" -I/usr/include/pcap -D_REENTRANT -O2 -Wall -g -ggdb -DDEBUG -finline-functions -DQT_THREAD_SUPPORT=1 -DDISPLAY_ICONS=false -DICON_DIR=\"/eq-icons/\" -std=c++11 -MT map.o -MD -MP -MF .deps/map.Tpo -c -o map.o map.cpp
In file included from map.cpp:33:0:
mapicondialog.h:29:49: error: ‘Ui’ has not been declared
class MapIconDialog : public QDialog, protected Ui::MapIconDialog
^
mapicondialog.h:29:53: error: expected ‘{’ before ‘MapIconDialog’
class MapIconDialog : public QDialog, protected Ui::MapIconDialog
^
mapicondialog.h:30:1: error: invalid type in declaration before ‘{’ token
{
^
In file included from /usr/include/QtGui/qwindowdefs.h:45:0,
from /usr/include/QtGui/qwidget.h:46,
from /usr/include/QtGui/QWidget:1,
from map.h:32,
from map.cpp:32:
mapicondialog.h:31:5: error: expected primary-expression before ‘public’
Q_OBJECT
^
mapicondialog.h:31:5: error: expected ‘}’ before ‘public’
mapicondialog.h:31:5: error: expected ‘,’ or ‘;’ before ‘public’
mapicondialog.h:31:5: error: uninitialized const ‘staticMetaObject’ [-fpermissive]
Q_OBJECT
^
/usr/include/QtCore/qobjectdefs.h:304:22: note: ‘const struct QMetaObject’ has no user-provided default constructor
struct Q_CORE_EXPORT QMetaObject
^
In file included from /usr/include/QtGui/qwindowdefs.h:45:0,
from /usr/include/QtGui/qwidget.h:46,
from /usr/include/QtGui/QWidget:1,
from map.h:32,
from map.cpp:32:
/usr/include/QtCore/qobjectdefs.h:469:28: note: and the implicitly-defined constructor does not initialize ‘const QMetaObject* QMetaObject::<anonymous struct>::superdata’
const QMetaObject *superdata;
^
In file included from /usr/include/QtGui/qwindowdefs.h:45:0,
from /usr/include/QtGui/qwidget.h:46,
from /usr/include/QtGui/QWidget:1,
from map.h:32,
from map.cpp:32:
mapicondialog.h:31:5: error: ‘virtual’ outside class declaration
Q_OBJECT
^
mapicondialog.h:31:5: error: non-member function ‘const QMetaObject* metaObject()’ cannot have cv-qualifier
mapicondialog.h:31:5: error: ‘virtual’ outside class declaration
Q_OBJECT
^
mapicondialog.h:31:5: error: ‘virtual’ outside class declaration
Q_OBJECT
^
mapicondialog.h:31:5: error: expected unqualified-id before ‘private’
Q_OBJECT
^
In file included from map.cpp:33:0:
mapicondialog.h:33:5: error: expected unqualified-id before ‘public’
public:
^
mapicondialog.h:35:25: error: expected constructor, destructor, or type conversion before ‘;’ token
~MapIconDialog();
^
mapicondialog.h:37:5: error: expected unqualified-id before ‘public’
public slots:
^
mapicondialog.h:39:29: error: ‘virtual’ outside class declaration
virtual void revert();
^
mapicondialog.h:40:27: error: ‘virtual’ outside class declaration
virtual void init();
^
mapicondialog.h:41:30: error: ‘virtual’ outside class declaration
virtual void destroy();
^
mapicondialog.h:42:55: error: ‘virtual’ outside class declaration
virtual void setMapIcons( MapIcons * mapIcons );
^
mapicondialog.h:43:53: error: ‘virtual’ outside class declaration
virtual void mapIconCombo_activated( int id );
^
mapicondialog.h:44:44: error: ‘virtual’ outside class declaration
virtual void imagePenColor_clicked();
^
mapicondialog.h:45:46: error: ‘virtual’ outside class declaration
virtual void imageBrushColor_clicked();
^
mapicondialog.h:46:48: error: ‘virtual’ outside class declaration
virtual void highlightPenColor_clicked();
^
mapicondialog.h:47:50: error: ‘virtual’ outside class declaration
virtual void highlightBrushColor_clicked();
^
mapicondialog.h:48:44: error: ‘virtual’ outside class declaration
virtual void line0PenColor_clicked();
^
mapicondialog.h:49:44: error: ‘virtual’ outside class declaration
virtual void line1PenColor_clicked();
^
mapicondialog.h:50:44: error: ‘virtual’ outside class declaration
virtual void line2PenColor_clicked();
^
mapicondialog.h:51:47: error: ‘virtual’ outside class declaration
virtual void walkPathPenColor_clicked();
^
mapicondialog.h:52:42: error: ‘virtual’ outside class declaration
virtual void setupMapIconDisplay();
^
mapicondialog.h:54:5: error: expected unqualified-id before ‘protected’
protected:
^
mapicondialog.h:60:1: error: expected declaration before ‘}’ token
};
^
In file included from /usr/include/QtGui/qwindowdefs.h:45:0,
from /usr/include/QtGui/qwidget.h:46,
from /usr/include/QtGui/QWidget:1,
from map.h:32,
from map.cpp:32:
mapicondialog.h:31:5: warning: ‘void qt_static_metacall(QObject*, QMetaObject::Call, int, void**)’ declared ‘static’ but never defined [-Wunused-function]
Q_OBJECT
^
make[2]: *** [map.o] Error 1
make[2]: Leaving directory `/root/showeq6/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/showeq6'
make: *** [all] Error 2

kimmel
11-18-2020, 12:12 PM
Test on a different machine with a fresh install of Cent 7.9.2009 with QT4 Qt4-devel etc and same error as above.

cn187
11-18-2020, 03:40 PM
In file included from map.cpp:33:0:
mapicondialog.h:29:49: error: ‘Ui’ has not been declared
class MapIconDialog : public QDialog, protected Ui::MapIconDialog


Ui gets declared in ui_mapicondialog.h, which is generated during the build by the Qt UIC.

My guess is it's trying to use your Qt3 UIC instead of your Qt4 UIC. If you search in config.log for UIC, you should be able to see what UIC version it's finding and where.

It may make sense to adjust the search ordering in the configure scripts and/or do a version check on the UIC itself. If you let me know what your Qt3 and Qt4 UIC paths, I'll see what I can do.

kimmel
11-18-2020, 04:16 PM
In file included from map.cpp:33:0:
mapicondialog.h:29:49: error: ‘Ui’ has not been declared
class MapIconDialog : public QDialog, protected Ui::MapIconDialog


Ui gets declared in ui_mapicondialog.h, which is generated during the build by the Qt UIC.

My guess is it's trying to use your Qt3 UIC instead of your Qt4 UIC. If you search in config.log for UIC, you should be able to see what UIC version it's finding and where.

It may make sense to adjust the search ordering in the configure scripts and/or do a version check on the UIC itself. If you let me know what your Qt3 and Qt4 UIC paths, I'll see what I can do.

I'm not sure if this is the right info you are looking for in the logs, I'm definitely not a linux user so might need more help if this is not it. Looks like it might be trying to use q3. How do I change the search order to try qt4 first?


configure:17866: checking for Qt4 UIC
configure:17985: tried to call /usr/lib64/qt-3.3/bin/uic -v 2>&1 | sed -e '1q' | grep Qt
configure:17986: uic output: Qt user interface compiler.

ac_cv_path_uic=/usr/lib64/qt-3.3/bin/uic

UIC='/usr/lib64/qt-3.3/bin/uic'

cn187
11-18-2020, 05:22 PM
Yes, that's the right info, thanks.

It's definitely trying to use the Qt3 UIC, so that's likely the problem.

If your Qt4 packages are installed in a standard location (like /usr/lib64/qt4 on 64-bit CentOS), then the current search order should find the Qt4 version before it finds the Qt3 version.

As a workaround, you can try



UIC=/path/to/your/uic ./configure


You might try looking under /usr/lib64/qt4/bin for the Qt4 UIC, but if it was there, then configure should have already found it.

Also, would you please paste the output of the following commands:



rpm -q qt

rpm -q qt-devel

locate bin/uic

kimmel
11-18-2020, 07:26 PM
my qt4 UIC is /usr/lib64/qt4/bin/uic, I don't understand the workaround, UIC= that path will set the environment variable for configure?


rpm -q qt-devel
qt-devel-4.8.7-9.el7_9.x86_64

rpm -q qt
qt-4.8.7-9.el7_9.x86_64

locate bin/uic
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

echo $QTDIR
/usr/lib64/qt-3.3



I don't want to uninstall qt3 yet since I use seq5 and still need it... I tried UIC=/usr/lib64/qt4/uic ./configure

but that is still giving me errors on make, config.log is still referencing qt3.3

cn187
11-18-2020, 07:47 PM
Yes, the UIC= should override the UIC path (the configure script checks for the UIC env var and will use it if it exists). When you set that, are the errors you get the same, or different?

Regardless, if QTDIR is set to qt-3.3, that's going to be an issue as well, since that will override things in a similar way to trying to override UIC.

do


QTDIR=/usr/lib64/qt4 ./configure


or alternatively



export QTDIR=/usr/lib64/qt4
./configure


and see if that solves it.

kimmel
11-18-2020, 07:56 PM
Export worked but I had to make -f Makefile.dist build and then do ./configure, if I just did ./configure and then make it would error like before. Either way, guess I had to force the QTDIR variable but it compiled. Thanks for all the hints!

cn187
11-18-2020, 08:16 PM
Glad you got it working!