Qt6.5.3 and QTcreator 9 .... problem to use gcc-9
-
-
On my debian12 system I've install Qt5.6.3 and QtCreator9 and Gcc9 stc .... I try to convert my old app fron qt5.15.2 c++ to qt6.5.3 c++ ...... for first things not understand what we do with some #include QtCharts I used ... so simply I leave out ...
-
After these see on new app qt6.5 use cmake instead .pro file .... but is possible to use .pro file as in the past or need to convert all an cmake ???
-
After these I've some error all related to qflags (3-4 pont with these error .....):
/home/xxx/Qt/6.5.3/gcc_64/include/QtCore/qflags.h:116: error: request for member 'QFlags<QEventLoop::ProcessEventsFlag>::i' in '*('<invalid tree code>' not supported by dump_type_prefix<typeprefixerror>*'<invalid tree code>' not supported by dump_type_suffix)this', which is of non-class type ''<invalid tree code>' not supported by dump_type<type error>' ../../Qt/6.5.3/gcc_64/include/QtCore/qeventloop.h:50:1: required from here ../../Qt/6.5.3/gcc_64/include/QtCore/qflags.h:116:88: error: request for member 'QFlags<QEventLoop::ProcessEventsFlag>::i' in '*('<invalid tree code>' not supported by dump_type_prefix<typeprefixerror>*'<invalid tree code>' not supported by dump_type_suffix)this', which is of non-class type ''<invalid tree code>' not supported by dump_type<type error>' 116 | constexpr inline QFlags operator&(Enum other) const noexcept { return QFlags(QFlag(i & Int(other))); } |
on file qflags.h error is show in these point .... (pictures attach):
and not able to solve it.
Appreciate any indication type ..... -
-
thanks a lot .... but qt5.15.2 work with c++20 gcc11 .... not try gcc12 .... but try to install different version of qt6 and where qt6.5.3 lts have almost 6-7 installation problem from online installer ... qt6.6.3 no problem at all during installation process .... previous of these I discover that kernel 6.6 that I previously used have a lot of bug ... some library is impossible to install ... so in any case was inusable for me. So I reinstal SO using these time kernel 6.10 ..... whith no problem about library that previous I have ..... BUT i see a lot of error during qt6.5.3 online installer process .... so I try almost 12 time with plain and totally new installation ... without a complete sucess ... sometime qt6.5.3 istall whitout creator, sometime whitout other module ..... so try one time qt6.6.3 and all work ..... for duble check I try an other plain istall of qt6.6.3 ... same result ... no error at all .... not try until now compile my app just converted on qt6 version .... but for now all work ... and simple browser example work great, where with qt6.5.3 was impossible to use ..... impossible to install correctly webengine in my case with qt6.5.3. ..... these is not my app but use web page on my app for example .... when I try my app on qt creator, I write here the result. But seems most part of problem was solved.
-
I realize now .... after error about flag I've everytime an error related with somme xxxxxx.o file ..... and everytime these file have and xxxxx.ui .... and normally it is QDialog or utilize some QGraphicView or QSqlDatabase ..... so maybe porting qt5.15 to Qt6.5 somethings in QGraphicViews or QSqlDatabase is not accept ...... anyone can indicate me what normally is not accept when it is done these type of porting?
-
I realize now .... after error about flag I've everytime an error related with somme xxxxxx.o file ..... and everytime these file have and xxxxx.ui .... and normally it is QDialog or utilize some QGraphicView or QSqlDatabase ..... so maybe porting qt5.15 to Qt6.5 somethings in QGraphicViews or QSqlDatabase is not accept ...... anyone can indicate me what normally is not accept when it is done these type of porting?
See changes to QtCharts module here:
- After these see on new app qt6.5 use cmake instead .pro file .... but is possible to use .pro file as in the past or need to convert all an cmake ???
Yes, you still can use QMake in Qt6. The recommended build system however is CMake.
-
@Pl45m4 thanks for these ......
@ all .....
after try to compile and debug several time .... maybe there are ana error in these file but compiler non suggest nothing of interesting ... only WLED.0 error 1 ...
WLED.h file *********
#ifndef _WLED_H_ #define _WLED_H_ #include <QtDesigner/QtDesigner> #include <QWidget> class QTimer; class QDESIGNER_WIDGET_EXPORT WLED : public QWidget { Q_OBJECT Q_PROPERTY(double diameter READ diameter WRITE setDiameter) // mm Q_PROPERTY(QColor color READ color WRITE setColor) Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment) Q_PROPERTY(bool state READ state WRITE setState) Q_PROPERTY(bool flashing READ isFlashing WRITE setFlashing) Q_PROPERTY(int flashRate READ flashRate WRITE setFlashRate) public: explicit WLED(QWidget* parent=0); ~WLED(); double diameter() const; void setDiameter(double diameter); QColor color() const; void setColor(const QColor& color); Qt::Alignment alignment() const; void setAlignment(Qt::Alignment alignment); bool state() const; bool isFlashing() const; int flashRate() const; public slots: void setState(bool state); void toggleState(); void setFlashing(bool flashing); void setFlashRate(int rate); void startFlashing(); void stopFlashing(); public: int heightForWidth(int width) const; QSize sizeHint() const; QSize minimumSizeHint() const; signals: void setStateSig(bool state); void setNOTStateSig(bool state); void setFlashingSig(bool flashing); void setFlashRateSig(int rate); protected: void paintEvent(QPaintEvent* event); private: double diameter_; QColor color_; Qt::Alignment alignment_; bool initialState_; bool state_; int flashRate_; bool flashing_; // // Pixels per mm for x and y... // int pixX_, pixY_; // // Scaled values for x and y diameter. // int diamX_, diamY_; QRadialGradient gradient_; QTimer* timer_; }; #endif
than WLED.ccp file ***********
code_text ```#include <math.h> #include <QPainter> #include <QGradient> #include <QPaintDevice> #include <QTimer> #include "WLED.h" WLED:: WLED(QWidget* parent) : QWidget(parent), diameter_(5), color_(QColor("red")), alignment_(Qt::AlignCenter), initialState_(true), state_(true), flashRate_(200), flashing_(false) { timer_ = new QTimer(this); connect(timer_, SIGNAL(timeout()), this, SLOT(toggleState())); setDiameter(diameter_); } WLED:: ~WLED() { } double WLED:: diameter() const { return diameter_; } void WLED:: setDiameter(double diameter) { diameter_ = diameter; pixX_ = round(double(height())/heightMM()); pixY_ = round(double(width())/widthMM()); diamX_ = diameter_*pixX_; diamY_ = diameter_*pixY_; update(); } QColor WLED:: color() const { return color_; } void WLED:: setColor(const QColor& color) { color_ = color; update(); } Qt::Alignment WLED:: alignment() const { return alignment_; } void WLED:: setAlignment(Qt::Alignment alignment) { alignment_ = alignment; update(); } void WLED:: setFlashRate(int rate) { flashRate_ = rate; emit setFlashRateSig(rate); update(); } void WLED:: setFlashing(bool flashing) { flashing_ = flashing; emit setFlashingSig(flashing); update(); } void WLED:: startFlashing() { setFlashing(true); } void WLED:: stopFlashing() { setFlashing(false); } void WLED:: setState(bool state) { state_ = state; emit setStateSig(state); emit setNOTStateSig(!state); update(); } void WLED:: toggleState() { state_ = !state_; update(); } int WLED:: heightForWidth(int width) const { return width; } QSize WLED:: sizeHint() const { return QSize(diamX_, diamY_); } QSize WLED:: minimumSizeHint() const { return QSize(diamX_, diamY_); } void WLED:: paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter p(this); QRect geo = geometry(); int width = geo.width(); int height = geo.height(); int x=0, y=0; if ( alignment_ & Qt::AlignLeft ) x = 0; else if ( alignment_ & Qt::AlignRight ) x = width-diamX_; else if ( alignment_ & Qt::AlignHCenter ) x = (width-diamX_)/2; else if ( alignment_ & Qt::AlignJustify ) x = 0; if ( alignment_ & Qt::AlignTop ) y = 0; else if ( alignment_ & Qt::AlignBottom ) y = height-diamY_; else if ( alignment_ & Qt::AlignVCenter ) y = (height-diamY_)/2; QRadialGradient g(x+diamX_/2, y+diamY_/2, diamX_*0.4, diamX_*0.4, diamY_*0.4); g.setColorAt(0, Qt::white); if ( state_ ) g.setColorAt(1, color_); else g.setColorAt(1, Qt::black); QBrush brush(g); p.setPen(color_); p.setRenderHint(QPainter::Antialiasing, true); p.setBrush(brush); p.drawEllipse(x, y, diamX_-1, diamY_-1); if ( flashRate_ > 0 && flashing_ ) timer_->start(flashRate_); else timer_->stop(); } bool WLED:: state() const { return state_; } bool WLED:: isFlashing() const { return flashing_; } int WLED:: flashRate() const { return flashRate_; }
not understand why in qt5.15 compile ok and in qt6.5 not so good .... previosly obviusly compiler was gcc-7 ... actually try to use gcc-9 .... but compiler everytime show to me these row:
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8. Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. /** other messages about compiling "blue colour" ***/ See <file:///usr/share/doc/gcc-12/README.Bugs> for instructions. make: *** [Makefile:7513: WLED.o] Error 1
so seems not accept to use gcc-9 and still use gcc-12 ..... how can "obligate qtcreator to use gcc-9 instead use standard debian12 gcc-12??
may be problem was these for first and only after other see from compilers ....
-
Just read the documentation.
Start with the supported compilers per platform.
Continue with how to add a compiler to Qt Creator.
Choose that compiler in your kit. You may have to delete your binary tree and build from scratch, if the compiler has changed. -
Just read the documentation.
Start with the supported compilers per platform.
Continue with how to add a compiler to Qt Creator.
Choose that compiler in your kit. You may have to delete your binary tree and build from scratch, if the compiler has changed.@Axel-Spoerl Thanks a lot ... all done ....but when have an error seems compiler still gcc12 instead gcc9 that is better for creator 9 or 14 ..... error messages refer everytime to "..../gcc-12/...."
-
@Axel-Spoerl Thanks a lot ... all done ....but when have an error seems compiler still gcc12 instead gcc9 that is better for creator 9 or 14 ..... error messages refer everytime to "..../gcc-12/...."
-
@jsulm ..... because quite newbe on these attach some image .... maybe I can understand better your suggestions ...
1- System info from QtCreator
2- gcc version avaiable and detect
3- Changing gcc versions
4- after compiling obtain new error ... seems refer to gcc12 .... i'm in wrong?
best regards
-
Upgrade your compiler to the latest 12.x version as it's an internal compiler error.
-
Upgrade your compiler to the latest 12.x version as it's an internal compiler error.
@Christian-Ehrlicher Thanks a lot .... but with previous step I change compiler from gcc12 to gcc9 or not? Because error is the same if change in previous manner to gcc9 AND if change to default gcc that is gcc12 ....
thanks for reply
-
An internal compiler error is nothing Qt can do against - the only way to fix it is to upgrade to the latest patch version of gcc you're using.
-
@Christian-Ehrlicher Thanks a lot .... but with previous step I change compiler from gcc12 to gcc9 or not? Because error is the same if change in previous manner to gcc9 AND if change to default gcc that is gcc12 ....
thanks for reply
@gfxx said in Qt6.5.3 and QTcreator 9 .... problem to use gcc-9:
but with previous step I change compiler from gcc12 to gcc9 or not?
You changed from 9 to 12 and wrote that the build fails, right?
I asked whether you rebuild from scratch after changing compiler - you did not answer... -
@gfxx said in Qt6.5.3 and QTcreator 9 .... problem to use gcc-9:
but with previous step I change compiler from gcc12 to gcc9 or not?
You changed from 9 to 12 and wrote that the build fails, right?
I asked whether you rebuild from scratch after changing compiler - you did not answer...@jsulm no I change from 12 to 9 .... because qtcreator and qt6 support max 9 on linux ..... after these I cancel every build of my project, run again qmake, and after build project. For major safety I close qtcreator, I open it again, I open again project, I check if gcc9 is still the choosen compiler, than clean again project, again qmake, and again build project. .... if you ask me install again qt6 with gcc9 ... these is not done.
is ok?
-
Why do you think max gcc 9 is supported?
-
Well, for openSuSE we officially support max gcc9 (see here). But that's mainly due to backwards compatibility. On openSuSE, Qt compiles with anything from gcc9 till gcc13.
-
My experience is, that you can always upgrade gcc and even use that with libraries (like Qt) that are compiled with older gcc versions.
The opposite is not always true
Regards.
-
My experience is, that you can always upgrade gcc and even use that with libraries (like Qt) that are compiled with older gcc versions.
The opposite is not always true
Regards.
@aha_1980 My case is about a qt project create with qt5.15.2 ..... need to upgrade hardware and cpu .... so I use original project not compiled ..... and try to upgrade it to qt6.5 .... because I use debian12, reading qt6 doc, seems need to use gcc9 .... debian12 have as default gcc12 .... so I install gcc9 and use appropriate qtcreator version .... try to compile using gcc9 ... but seems qtcreator non help me on these ..... someone suggest to upgrade my gcc12 because with some bugs, than compile my qt6 project using default gcc12 ..... because qt doc talk about supported gcc version on opensuse and ubuntu (nothing about debian) supported and supported one seems gcc9 .... I try to do these .... but for Axel users these is not necessary .....
I ask for confirmation .... gcc12 work good with qt6.5 in linux system?
-
@aha_1980 My case is about a qt project create with qt5.15.2 ..... need to upgrade hardware and cpu .... so I use original project not compiled ..... and try to upgrade it to qt6.5 .... because I use debian12, reading qt6 doc, seems need to use gcc9 .... debian12 have as default gcc12 .... so I install gcc9 and use appropriate qtcreator version .... try to compile using gcc9 ... but seems qtcreator non help me on these ..... someone suggest to upgrade my gcc12 because with some bugs, than compile my qt6 project using default gcc12 ..... because qt doc talk about supported gcc version on opensuse and ubuntu (nothing about debian) supported and supported one seems gcc9 .... I try to do these .... but for Axel users these is not necessary .....
I ask for confirmation .... gcc12 work good with qt6.5 in linux system?
@gfxx Why don't you just try it?
I have several systems with different compilers and as I said, upgrading the compiler mostly unproblematic.
You could, for example try gcc-12 with Qt 5.15.2 first to see if you program compiles. Afterwards, do the upgrade to Qt 6.
Regards
-
thanks a lot .... but qt5.15.2 work with c++20 gcc11 .... not try gcc12 .... but try to install different version of qt6 and where qt6.5.3 lts have almost 6-7 installation problem from online installer ... qt6.6.3 no problem at all during installation process .... previous of these I discover that kernel 6.6 that I previously used have a lot of bug ... some library is impossible to install ... so in any case was inusable for me. So I reinstal SO using these time kernel 6.10 ..... whith no problem about library that previous I have ..... BUT i see a lot of error during qt6.5.3 online installer process .... so I try almost 12 time with plain and totally new installation ... without a complete sucess ... sometime qt6.5.3 istall whitout creator, sometime whitout other module ..... so try one time qt6.6.3 and all work ..... for duble check I try an other plain istall of qt6.6.3 ... same result ... no error at all .... not try until now compile my app just converted on qt6 version .... but for now all work ... and simple browser example work great, where with qt6.5.3 was impossible to use ..... impossible to install correctly webengine in my case with qt6.5.3. ..... these is not my app but use web page on my app for example .... when I try my app on qt creator, I write here the result. But seems most part of problem was solved.