qtpropertybrowser with Qt6
-
I am trying to compile https://github.com/qtproject/qt-solutions/tree/master/qtpropertybrowser with Qt6. It was originally written for Qt4 but with some changes it also compiles with Qt6.
Unfortunately I get an error from the assembler.
The best solution would be if there is a pure Qt6 PropertyGrid / Browser, but I was not able to find one.
g++ -c -fno-keep-inline-dllexport -g -std=gnu++1z -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DISABLE_DEPRECATED_BEFORE=0 -DNODE_EDITOR_STATIC -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../Prototype -I. -I../Prototype/qtpropertybrowser/src -I../Prototype/nodeeditor/include -IC:/Qt/6.2.3/mingw_64/include -IC:/Qt/6.2.3/mingw_64/include/QtWidgets -IC:/Qt/6.2.3/mingw_64/include/QtGui -IC:/Qt/6.2.3/mingw_64/include/QtCore -Idebug -I. -I/include -IC:/Qt/6.2.3/mingw_64/mkspecs/win32-g++ -o debug\qteditorfactory.o ..\Prototype\qtpropertybrowser\src\qteditorfactory.cpp C:/Qt/Tools/mingw900_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/as.exe: debug\qteditorfactory.o: too many sections (41471) C:\Users\Daniel\AppData\Local\Temp\ccowrsUf.s: Assembler messages: C:\Users\Daniel\AppData\Local\Temp\ccowrsUf.s: Fatal error: can't write 30 bytes to section .text of debug\qteditorfactory.o: 'file too big' C:/Qt/Tools/mingw900_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/as.exe: debug\qteditorfactory.o: too many sections (41471) C:\Users\Daniel\AppData\Local\Temp\ccowrsUf.s: Fatal error: debug\qteditorfactory.o: file too big mingw32-make[1]: Leaving directory 'C:/Users/Daniel/Documents/Qt Projects/build-Prototype-Desktop_Qt_6_2_3_MinGW_64_bit-Debug' mingw32-make[1]: *** [Makefile.Debug:3019: debug/qteditorfactory.o] Error 1 mingw32-make: *** [Makefile:45: debug] Error 2 18:30:11: The process "C:\Qt\Tools\mingw900_64\bin\mingw32-make.exe" exited with code 2. Error while building/deploying project Prototype (kit: Desktop Qt 6.2.3 MinGW 64-bit) When executing step "Make" 18:30:11: Elapsed time: 00:13.
Does anybody have an idea why this happens with Qt6?
Thanks.
-
Hi,
What changes did you make ?
Do you have the same issue with a release build ?There's a linker flag that you can pass to handle big object but I currently fail to see why you are getting that error.
-
Pushing this up, as I am stuck with the same error while switching from 5.15.2 to 6.4.3
I am trying to use the qtpropertybrowser (6.4.3\Src\qttools\src\shared\qtpropertybrowser) in my project.
When compileing qteditorfactory.cpp withg++ -c -fno-keep-inline-dllexport -g -std=gnu++1z -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DSETUP_CONFIGURATOR -DNODE_EDITOR_SHARED -DSPDLOG_COMPILED_LIB -DQT_QML_DEBUG -DQT_OPENGLWIDGETS_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_SERIALBUS_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB -DQT_CORE_LIB -I[...] -o debug/qteditorfactory.o ../../../Qt/online/6.4.3/Src/qttools/src/shared/qtpropertybrowser/qteditorfactory.cpp
I get the error
C:/Qt/online/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/as.exe: debug/qteditorfactory.o: too many sections (40752) c:\temp\cc4Ogo3a.s: Assembler messages: c:\temp\cc4Ogo3a.s: Fatal error: can't write 30 bytes to section .text of debug/qteditorfactory.o: 'file too big' C:/Qt/online/Tools/mingw1120_64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/as.exe: debug/qteditorfactory.o: too many sections (40752) c:\temp\cc4Ogo3a.s: Fatal error: debug/qteditorfactory.o: file too big
-
@Dragoner said in qtpropertybrowser with Qt6:
-Wa,-mbig-obj
(This is ONE compiler flag, so the comma is not a typo!)
Correct. Specifically, it says that the compiler should pass the comma-separated list of arguments that follows (
-mbig-obj
) to the assembler (-Wa
), when it gets run.There are also
-Wp,
flags, to pass arguments to the preprocessor stage, and-Wl,
flags, when an option needs to go to the linker.In
gcc
, at least, the-Xassembler
,-Xpreprocessor
, and-Xlinker
flags can be used to do the same thing one argument at a time, without comma-separating them.(e.g. these are equivalent:)
$ gcc -Xassembler -mbig-obj ... $ gcc -Wa,-mbig-obj ...