[OpenWrt-Devel] Errors running make xconfig

Bas Mevissen abuse at basmevissen.nl
Fri Sep 13 06:39:02 EDT 2019


Hi all,

I'm trying to configure my openwrt project with xconfig. This fails with 
the errors pasted to https://pastebin.com/LJvsAhab (too long to add, 
summary below).

System is Mint 9.2 (Ubuntu Bionic based) with relevant Qt5 stuff 
installed, including libqt5* (I installed all of them...) and qtbase5-dev.

I used OpenWrt latest master, head of openwrt_19.07 branch and v18.06.4 
with the same result. I tried to figure out whether the configuration 
did function as designed:

(from scripts/config/Makefile)

$ pkg-config --exists Qt5Core && echo Ok
Ok

$ pkg-config --cflags Qt5Core Qt5Gui Qt5Widgets
-I/usr/include/x86_64-linux-gnu/qt5/QtWidgets 
-I/usr/include/x86_64-linux-gnu/qt5 
-I/usr/include/x86_64-linux-gnu/qt5/QtGui 
-I/usr/include/x86_64-linux-gnu/qt5 
-I/usr/include/x86_64-linux-gnu/qt5/QtCore 
-I/usr/include/x86_64-linux-gnu/qt5

$ pkg-config --libs Qt5Core Qt5Gui Qt5Widgets
-lQt5Widgets -lQt5Gui -lQt5Core

$ pkg-config --variable=host_bins Qt5Core
/usr/lib/qt5/bin

So it selects Qt5 and finds the required stuff:

$ cat scripts/config/.tmp_qtcheck
KC_QT_CFLAGS=-std=c++11 -fPIC 
-I/usr/include/x86_64-linux-gnu/qt5/QtWidgets 
-I/usr/include/x86_64-linux-gnu/qt5 
-I/usr/include/x86_64-linux-gnu/qt5/QtGui 
-I/usr/include/x86_64-linux-gnu/qt5 
-I/usr/include/x86_64-linux-gnu/qt5/QtCore 
-I/usr/include/x86_64-linux-gnu/qt5
KC_QT_LIBS=-lQt5Widgets -lQt5Gui -lQt5Core
KC_QT_MOC=/usr/lib/qt5/bin/moc

$ gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.

So it seems the configuration goes fine and everything should be available.

Shortened version of the error:

make[1]: Entering directory 
'/home/bas/Workspace/playground/openwrt/scripts/config'
   CHECK   qt
qconf.o: In function `ConfigList::metaObject() const':
qconf.cc:(.text+0x3ed): undefined reference to 
`QObjectData::dynamicMetaObject() const'
qconf.o: In function `ConfigList::qt_metacast(char const*)':
qconf.cc:(.text+0x446): undefined reference to 
`QTreeWidget::qt_metacast(char const*)'
qconf.o: In function `ConfigList::qt_metacall(QMetaObject::Call, int, 
void**)':
qconf.cc:(.text+0x474): undefined reference to 
`QTreeWidget::qt_metacall(QMetaObject::Call, int, void**)'
qconf.o: In function `ConfigList::menuChanged(menu*)':
qconf.cc:(.text+0x522): undefined reference to 
`QMetaObject::activate(QObject*, QMetaObject const*, int, void**)'
qconf.o: In function `ConfigList::menuSelected(menu*)':
qconf.cc:(.text+0x590): undefined reference to 
`QMetaObject::activate(QObject*, QMetaObject const*, int, void**)'
qconf.o: In function `ConfigList::parentSelected()':
qconf.cc:(.text+0x5d1): undefined reference to 
`QMetaObject::activate(QObject*, QMetaObject const*, int, void**)'
qconf.o: In function `ConfigList::gotFocus(menu*)':
qconf.cc:(.text+0x62a): undefined reference to 
`QMetaObject::activate(QObject*, QMetaObject const*, int, void**)'
qconf.o: In function `ConfigLineEdit::metaObject() const':
qconf.cc:(.text+0x695): undefined reference to 
`QObjectData::dynamicMetaObject() const'
qconf.o: In function `ConfigLineEdit::qt_metacast(char const*)':
qconf.cc:(.text+0x6ee): undefined reference to 
`QLineEdit::qt_metacast(char const*)'
qconf.o: In function `ConfigLineEdit::qt_metacall(QMetaObject::Call, 
int, void**)':
qconf.cc:(.text+0x71c): undefined reference to 
`QLineEdit::qt_metacall(QMetaObject::Call, int, void**)'
qconf.o: In function `ConfigView::metaObject() const':
qconf.cc:(.text+0x9f7): undefined reference to 
`QObjectData::dynamicMetaObject() const'
qconf.o: In function `ConfigView::qt_metacast(char const*)':
qconf.cc:(.text+0xa50): undefined reference to 
`QWidget::qt_metacast(char const*)'
(...)
qconf.o: In function `ConfigList::~ConfigList()':
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0x42): 
undefined reference to `QPalette::~QPalette()'
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0x54): 
undefined reference to `QPalette::~QPalette()'
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0x66): 
undefined reference to `QPixmap::~QPixmap()'
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0x78): 
undefined reference to `QPixmap::~QPixmap()'
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0x8a): 
undefined reference to `QPixmap::~QPixmap()'
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0x9c): 
undefined reference to `QPixmap::~QPixmap()'
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0xae): 
undefined reference to `QPixmap::~QPixmap()'
qconf.o:qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0xc0): 
more undefined references to `QPixmap::~QPixmap()' follow
qconf.o: In function `ConfigList::~ConfigList()':
qconf.cc:(.text._ZN10ConfigListD2Ev[_ZN10ConfigListD5Ev]+0xfc): 
undefined reference to `QTreeWidget::~QTreeWidget()'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x10): 
undefined reference to `QSettings::metaObject() const'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x18): 
undefined reference to `QSettings::qt_metacast(char const*)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x20): 
undefined reference to `QSettings::qt_metacall(QMetaObject::Call, int, 
void**)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x38): 
undefined reference to `QSettings::event(QEvent*)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x40): 
undefined reference to `QObject::eventFilter(QObject*, QEvent*)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x48): 
undefined reference to `QObject::timerEvent(QTimerEvent*)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x50): 
undefined reference to `QObject::childEvent(QChildEvent*)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x58): 
undefined reference to `QObject::customEvent(QEvent*)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x60): 
undefined reference to `QObject::connectNotify(QMetaMethod const&)'
qconf.o:(.data.rel.ro._ZTV14ConfigSettings[_ZTV14ConfigSettings]+0x68): 
undefined reference to `QObject::disconnectNotify(QMetaMethod const&)'
qconf.o: In function `ConfigSettings::~ConfigSettings()':
qconf.cc:(.text._ZN14ConfigSettingsD2Ev[_ZN14ConfigSettingsD5Ev]+0x26): 
undefined reference to `QSettings::~QSettings()'
qconf.o:(.data.rel.ro._ZTI16ConfigMainWindow[_ZTI16ConfigMainWindow]+0x10): 
undefined reference to `typeinfo for QMainWindow'
qconf.o:(.data.rel.ro._ZTI18ConfigSearchWindow[_ZTI18ConfigSearchWindow]+0x10): 
undefined reference to `typeinfo for QDialog'
qconf.o:(.data.rel.ro._ZTI14ConfigInfoView[_ZTI14ConfigInfoView]+0x10): 
undefined reference to `typeinfo for QTextBrowser'
qconf.o:(.data.rel.ro._ZTI10ConfigView[_ZTI10ConfigView]+0x10): 
undefined reference to `typeinfo for QWidget'
qconf.o:(.data.rel.ro._ZTI14ConfigLineEdit[_ZTI14ConfigLineEdit]+0x10): 
undefined reference to `typeinfo for QLineEdit'
qconf.o:(.data.rel.ro._ZTI10ConfigItem[_ZTI10ConfigItem]+0x10): 
undefined reference to `typeinfo for QTreeWidgetItem'
qconf.o:(.data.rel.ro._ZTI10ConfigList[_ZTI10ConfigList]+0x10): 
undefined reference to `typeinfo for QTreeWidget'
qconf.o:(.data.rel.ro._ZTI14ConfigSettings[_ZTI14ConfigSettings]+0x10): 
undefined reference to `typeinfo for QSettings'
collect2: error: ld returned 1 exit status
Makefile:45: recipe for target 'qconf' failed
make[1]: *** [qconf] Error 1
make[1]: Leaving directory 
'/home/bas/Workspace/playground/openwrt/scripts/config'
/home/bas/Workspace/playground/openwrt/include/toplevel.mk:108: recipe 
for target 'scripts/config/qconf' failed
make: *** [scripts/config/qconf] Error 2

Any help would be welcome.

Regards,

Bas.




_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list