radiomanV / TL866

Open source software for TL866
GNU General Public License v2.0
345 stars 80 forks source link

can't compile on gentoo with qt-5.12.3 #22

Closed rpolasek closed 5 months ago

rpolasek commented 5 years ago

hi,

i had to add a prefix QtWidgets/ before some include (for example: QtWidgets/QLineEdit, QtWidgets/QDialog) but i still can't compile the project :-/

$ qmake && make g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -I. -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o advdialog.o advdialog.cpp advdialog.cpp: In constructor ‘AdvDialog::AdvDialog(QWidget*)’: advdialog.cpp:32:16: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui(new Ui::AdvDialog) ^~~~~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:34:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->setupUi(this); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp: In destructor ‘virtual AdvDialog::~AdvDialog()’: advdialog.cpp:40:12: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete] delete ui; ^~ advdialog.cpp:40:12: warning: invalid use of incomplete type ‘class Ui::AdvDialog’ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:40:12: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined delete ui; ^~ advdialog.cpp: In member function ‘void AdvDialog::SetUi(QString, QString, QString, bool, int)’: advdialog.cpp:46:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtDevcode->setText(devcode); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:47:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtSerial->setText(serial); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:48:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtInfo->setText(info); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:50:11: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->radioA->setChecked(true); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:52:11: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->radioCS->setChecked(true); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:53:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->optionCP->setChecked(cp); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp: In member function ‘void AdvDialog::on_btnEdit_clicked()’: advdialog.cpp:58:24: error: invalid use of incomplete type ‘class Ui::AdvDialog’ QString devcode =ui->txtDevcode->text(); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:59:23: error: invalid use of incomplete type ‘class Ui::AdvDialog’ QString serial =ui->txtSerial->text(); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:64:11: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtDevcode->setText(devcode); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:65:11: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtSerial->setText(serial); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp: In member function ‘void AdvDialog::on_btnDefault_clicked()’: advdialog.cpp:72:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtDevcode->setText("00000000"); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:73:7: error: invalid use of incomplete type ‘class Ui::AdvDialog’ ui->txtSerial->setText("000000000000000000000000"); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp: In member function ‘void AdvDialog::on_btnWriteBootloader_clicked()’: advdialog.cpp:83:28: error: invalid use of incomplete type ‘class Ui::AdvDialog’ emit WriteBootloader(ui->radioA->isChecked() ? Firmware::A_BOOTLOADER : Firmware::CS_BOOTLOADER); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp: In member function ‘void AdvDialog::on_btnWriteConfig_clicked()’: advdialog.cpp:88:24: error: invalid use of incomplete type ‘class Ui::AdvDialog’ emit WriteConfig(ui->optionCP->isChecked()); ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp: In member function ‘void AdvDialog::on_btnWriteInfo_clicked()’: advdialog.cpp:93:22: error: invalid use of incomplete type ‘class Ui::AdvDialog’ emit WriteInfo(ui->txtDevcode->text(), ui->txtSerial->text());; ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ advdialog.cpp:93:46: error: invalid use of incomplete type ‘class Ui::AdvDialog’ emit WriteInfo(ui->txtDevcode->text(), ui->txtSerial->text());; ^~ In file included from advdialog.cpp:24: advdialog.h:10:7: note: forward declaration of ‘class Ui::AdvDialog’ class AdvDialog; ^~~~~ make: *** [Makefile:830: advdialog.o] Error 1

radiomanV commented 5 years ago

Hi, There's no need to add those prefixes. I grabbed the 5.12.3 (i was using the 5.9 version) and the firmware updater compiled just fine (Linux Mint 19.2, gcc ver. 7.4.0 ).

Here is my full build log

qmake && make /home/radioman/Qt/5.12.3/gcc_64/bin/uic mainwindow.ui -o ui_mainwindow.h /home/radioman/Qt/5.12.3/gcc_64/bin/uic editdialog.ui -o ui_editdialog.h /home/radioman/Qt/5.12.3/gcc_64/bin/uic advdialog.ui -o ui_advdialog.h g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o main.o main.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o mainwindow.o mainwindow.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o advdialog.o advdialog.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o firmware.o firmware.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o editdialog.o editdialog.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o hexwriter.o hexwriter.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o crc.o crc.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o usb_linux.o usb_linux.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o notifier_linux.o notifier_linux.cpp /home/radioman/Qt/5.12.3/gcc_64/bin/rcc -name resources resources.qrc -o qrc_resources.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o qrc_resources.o qrc_resources.cpp g++ -pipe -O2 -Wall -W -dM -E -o moc_predefs.h ../../Qt/5.12.3/gcc_64/mkspecs/features/data/dummy.cpp /home/radioman/Qt/5.12.3/gcc_64/bin/moc -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/radioman/development/Qt/moc_predefs.h -I/home/radioman/Qt/5.12.3/gcc_64/mkspecs/linux-g++ -I/home/radioman/development/Qt -I/home/radioman/Qt/5.12.3/gcc_64/include -I/home/radioman/Qt/5.12.3/gcc_64/include/QtWidgets -I/home/radioman/Qt/5.12.3/gcc_64/include/QtGui -I/home/radioman/Qt/5.12.3/gcc_64/include/QtCore -I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7/backward -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include mainwindow.h -o moc_mainwindow.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o moc_mainwindow.o moc_mainwindow.cpp /home/radioman/Qt/5.12.3/gcc_64/bin/moc -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/radioman/development/Qt/moc_predefs.h -I/home/radioman/Qt/5.12.3/gcc_64/mkspecs/linux-g++ -I/home/radioman/development/Qt -I/home/radioman/Qt/5.12.3/gcc_64/include -I/home/radioman/Qt/5.12.3/gcc_64/include/QtWidgets -I/home/radioman/Qt/5.12.3/gcc_64/include/QtGui -I/home/radioman/Qt/5.12.3/gcc_64/include/QtCore -I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7/backward -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include advdialog.h -o moc_advdialog.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o moc_advdialog.o moc_advdialog.cpp /home/radioman/Qt/5.12.3/gcc_64/bin/moc -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/radioman/development/Qt/moc_predefs.h -I/home/radioman/Qt/5.12.3/gcc_64/mkspecs/linux-g++ -I/home/radioman/development/Qt -I/home/radioman/Qt/5.12.3/gcc_64/include -I/home/radioman/Qt/5.12.3/gcc_64/include/QtWidgets -I/home/radioman/Qt/5.12.3/gcc_64/include/QtGui -I/home/radioman/Qt/5.12.3/gcc_64/include/QtCore -I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7/backward -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include editdialog.h -o moc_editdialog.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o moc_editdialog.o moc_editdialog.cpp /home/radioman/Qt/5.12.3/gcc_64/bin/moc -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include /home/radioman/development/Qt/moc_predefs.h -I/home/radioman/Qt/5.12.3/gcc_64/mkspecs/linux-g++ -I/home/radioman/development/Qt -I/home/radioman/Qt/5.12.3/gcc_64/include -I/home/radioman/Qt/5.12.3/gcc_64/include/QtWidgets -I/home/radioman/Qt/5.12.3/gcc_64/include/QtGui -I/home/radioman/Qt/5.12.3/gcc_64/include/QtCore -I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7/backward -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include notifier_linux.h -o moc_notifier_linux.cpp g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -I../../Qt/5.12.3/gcc_64/include -I../../Qt/5.12.3/gcc_64/include/QtWidgets -I../../Qt/5.12.3/gcc_64/include/QtGui -I../../Qt/5.12.3/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt/5.12.3/gcc_64/mkspecs/linux-g++ -o moc_notifier_linux.o moc_notifier_linux.cpp g++ -Wl,-O1 -Wl,-rpath,/home/radioman/Qt/5.12.3/gcc_64/lib -o TL866_Updater main.o mainwindow.o advdialog.o firmware.o editdialog.o hexwriter.o crc.o usb_linux.o notifier_linux.o qrc_resources.o moc_mainwindow.o moc_advdialog.o moc_editdialog.o moc_notifier_linux.o -ludev -lusb-1.0 -L/home/radioman/Qt/5.12.3/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread

What caught my attention in your build log is the lack of ui compiler entries:

/home/radioman/Qt/5.12.3/gcc_64/bin/uic mainwindow.ui -o ui_mainwindow.h /home/radioman/Qt/5.12.3/gcc_64/bin/uic editdialog.ui -o ui_editdialog.h /home/radioman/Qt/5.12.3/gcc_64/bin/uic advdialog.ui -o ui_advdialog.h

I don't see yours or i'm missing something. mainwindow.ui should compile as ui_mainwindow.h and so on. So must be something on your qt setup i don't know what else.

rpolasek commented 5 years ago

thanks for your responce. i'm able to build it using qtcreator (qmake && make executed manually from uxterm still doesn't work) so it seems you're right i have some local configuration issue...