MingW: A lot of warnings + too slow compiling
-
@hskoglund Thank you for the explanation.
May be, the crash cause is that you said. I will think about it. Thank you.
Even if the crash problem is the incompatibility of Qt's internal * .dll's, there is still a question of the reasons behind the items below:
a) Both official Qt
MingW 8.1
and MSYS2GCC 10.1
compile time are 30x SLOWER thanGCC 9.3
on Linux orMSVC 2019
on Windows 10 x64
b) Offical Qt MingW 8.1 are given to my 10.000 warning messages at compile time about internal Qt files. (Look the image in the first post above)
c) How can I use some version of GCC withQt Creator 4.12.4
on Windows 10 x64 without theses 2 problems above.Obs.: I need to use GCC because I have to integrate my custom old Fortran libraries with my new Qt C++ application.
Theses Fortran libraries were compiled using gfortran 9.3.0.
So the C/C++ compatible compiler is GCC. I can't do it using MSVC, because I don't have the Intel Fortran Compiler.I appreciate any help!
-
How you tried if Qt Creator available inside MSYS2 makes more speedy compilations? Tto install the 64-bit, try this on a MSYS2 prompt:
pacman -S mingw-w64-x86_64-qt-creator
Previously I tested 32-bit Qt Creator, works fine, screenshot:
Edit: more about Qt in MSYS2 here
-
@hskoglund thank you for your help.
I did what you said:
pacman -S mingw-w64-x86_64-qt-creator
This command installed a MingW-64 version of:
- Assistant 5.15
- Designer 5.15
- Linguist 5.15
- Qt 5.15
As you can see in my Start Menu below:
But it does not installed the
Qt Creator IDE
build from GCC like your image above.
So, my Qt Creator IDE is still MSVC:Is that right?
@hskoglund said in MingW: A lot of warnings + too slow compiling:
How you tried if Qt Creator available inside MSYS2 makes more speedy compilations?
In my Windows 10 machine I have 3 Qt configurations installed:
- MSVC 2019
- Official Qt MingW-W64 8.1
- MSYS2 MingW-W64 (GCC 10.1.0)
Inside Qt Creator IDE, I'm measuring the compilation time just switching between theses 3 configs.
a) With MSVC, my project builds in 7 seconds. (no warnings, no errors).
b) With MingW 8.1 or MingW (GCC 10.1) the same project build in 4 or 5 MINUTES.c) I tested the same project in another machine running Ubuntu 20.04 with GCC 9.3.0. The complation time is 7 seconds too. No warnings. No errors.
Just MingW-W64 (Qt official and MSYS2) are slow.
-
Re. 64-bit Qt Creator in MSYS2, it's there alright (I didn't know the MSYS2 Qt stuff can be visible in the Windows 10 Start Menu)
Anway start a 64-bit MSYS2 prompt:c:\msys64\mingw64.exe
Then inside that just type:qtcreator
BTW: got another (crazy?) idea, you could try using Wine in your Ubuntu 20.04 to install and run the normal Windows Qt MinGW::
Perhaps running under Wine will speed your compilation :-)
-
@hskoglund thank you!
So I opened the Qt Creator IDE using MSYS2 prompt:
qtcreator
It open the correct on Qt Creator IDE (GCC 10.1.0 based):
Look in: Tools -> Options -> Kits
The original MSYS2 MingW-W64 Qt Configuration (GCC based)
After that, I right clicked in my project -> Clean
After that, I clicked on build button (bottom left hammer)During the compile process, I got this single error message:
[Makefile.Debug:1271: debug/moc_app.cpp] Error 1
Obs.: My Qt GUI application is called "App"
Could you help me?
-
Hmm, maybe first check that the toolchain is up to scratch, click New to create a vanilla Untitled widget app, build it with MSYS2 MinGW-64 compiler and see that it starts ok.
Also, try with deleting your build directory. (it should be called
build-app-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug -
@hskoglund
I close all projects....and I create a new C++ Qt Widget Application.
It compile and run Ok! No warnings, no errors. The compile time was fast, but was just a single blank window.After that, I deleted the build-app folder and cleaned my trash.
After that, I deleted theapp.pro.user
from the application folder.So I my project again with Qt (GCC based) it automatically setup the
Desktop Qt MingW-w64 64 bits(MSYS2)
config (as the same of the image above.I just click in the Qt Creator IDE build buttom.
It start to build... but I got the same error message:[Makefile.Debug:1271: debug/moc_app.cpp] Error 1
Any ideas?
-
@hskoglund No...
Here is my build path:
C:\Users\VM\Desktop\build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug
To be more clear: My full project is called "Rotortest". Inside of it, I have a single sub project called "App".
The source and build directories are in my Desktop.
Any help?
-
Well something's wrong with the moc commandline in the QMake file Makefile.debug, it says above line 1271 but the actual moc command line is something like:
C:/msys64/mingw64/bin/moc.exe /C/msys64/mingw64/bin/moc.exe $(DEFINES) --include C:/Users/VM/Desktop/... long line....
Could you open the Makefile.Debug file in your build folder (C:\Users\VM\Desktop\build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug) and look for lines like those 2 above?
Edit: finding the error might be easier if you attempt to build outside of Qt Creator:
start MSYS2 mingw64 cmd window and type:cd /c/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug make
Then paste the output here...
-
@hskoglund said in MingW: A lot of warnings + too slow compiling:
Perhaps running under Wine will speed your compilation :-)
I would need a beer if that were true (and I don't even drink alcohol)
-
@hskoglund said in MingW: A lot of warnings + too slow compiling:
finding the error might be easier if you attempt to build outside of Qt Creator:
What I did:
1- In Qt Creator IDE, right-clicked in my project "rotortest" -> Clean
2- Close Qt Creator IDE
3- Opened MSYS2 Mingw64 Prompt and go to the build folder using:cd /c/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug
4- Typed:
mingw32-make.exe
$ mingw32-make.exe cd App/ && ( test -e Makefile || C:/msys64/mingw64/bin/qmake.exe -o Makefile C:/Users/VM/Desktop/rotortest/App/App.pro -spec win32-g++ CONFIG+=debug CONFIG+=qml_debug ) && C:/msys64/mingw64/bin/mingw32-make.exe -f Makefile mingw32-make[1]: Entering directory 'C:/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug/App' C:/msys64/mingw64/bin/mingw32-make.exe -f Makefile.Debug mingw32-make[2]: Entering directory 'C:/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug/App' /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/app.ui -o ui_app.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/custom_widget/value_unit.ui -o ui_value_unit.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_assembly.ui -o ui_form_assembly.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_excitation.ui -o ui_form_excitation.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_job.ui -o ui_form_job.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_library.ui -o ui_form_library.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_material_elastic.ui -o ui_form_material_elastic.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_material_fluid.ui -o ui_form_material_fluid.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/form/form_part.ui -o ui_form_part.h /C/msys64/mingw64/bin/uic.exe ../../rotortest/App/plot.ui -o ui_plot.h g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/table.o ../../rotortest/App/custom_widget/table.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/value_unit.o ../../rotortest/App/custom_widget/value_unit.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_assembly.o ../../rotortest/App/form/form_assembly.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_excitation.o ../../rotortest/App/form/form_excitation.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_job.o ../../rotortest/App/form/form_job.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_library.o ../../rotortest/App/form/form_library.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_material_elastic.o ../../rotortest/App/form/form_material_elastic.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_material_fluid.o ../../rotortest/App/form/form_material_fluid.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/form_part.o ../../rotortest/App/form/form_part.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/main.o ../../rotortest/App/main.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/app.o ../../rotortest/App/app.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/density.o ../../rotortest/App/material/density.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/material.o ../../rotortest/App/material/material.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/viscosity.o ../../rotortest/App/material/viscosity.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/step_density.o ../../rotortest/App/step/step_density.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/step_viscosity.o ../../rotortest/App/step/step_viscosity.cpp g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I../../rotortest/App -I. -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -I../../rotortest/App/third-party/gsl -I../../rotortest/App/third-party/gsl -isystem C:/msys64/mingw64/include/QtWidgets -isystem C:/msys64/mingw64/include/QtGui -isystem C:/msys64/mingw64/include/QtCore -Idebug -I. -I/include -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -o debug/update_project.o ../../rotortest/App/update_project.cpp g++ -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -Wextra -Wextra -dM -E -o debug/moc_predefs.h C:/msys64/mingw64/share/qt5/mkspecs/features/data/dummy.cpp /C/msys64/mingw64/bin/moc.exe -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN --include C:/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug/App/debug/moc_predefs.h -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -IC:/Users/VM/Desktop/rotortest/App -I'C:/Program Files/HDF_Group/HDF5/1.12.0/include' -IC:/Users/VM/Desktop/rotortest/App/third-party/gsl -IC:/Users/VM/Desktop/rotortest/App/third-party/gsl -IC:/msys64/mingw64/include/QtWidgets -IC:/msys64/mingw64/include/QtGui -IC:/msys64/mingw64/include/QtCore -I. -IC:/msys64/mingw64/include/c++/10.1.0 -IC:/msys64/mingw64/include/c++/10.1.0/x86_64-w64-mingw32 -IC:/msys64/mingw64/include/c++/10.1.0/backward -IC:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.1.0/include -IC:/msys64/mingw64/include -IC:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.1.0/include-fixed -IC:/msys64/mingw64/x86_64-w64-mingw32/include ../../rotortest/App/app.h -o debug/moc_app.cpp Usage: C:\msys64\mingw64\bin\moc.exe [options] [header-file] [@option-file] [MOC generated json file] Qt Meta Object Compiler version 67 (Qt 5.15.0) Options: -?, -h, --help Displays help on commandline options. --help-all Displays help including Qt specific options. -v, --version Displays version information. -o <file> Write output to file rather than stdout. -I <dir> Add dir to the include path for header files. -F <framework> Add Mac framework to the include path for header files. -E Preprocess only; do not generate meta object code. -D <macro[=def]> Define macro, with optional definition. -U <macro> Undefine macro. -M <key=value> Add key/value pair to plugin meta data --compiler-flavor <flavor> Set the compiler flavor: either "msvc" or "unix". -i Do not generate an #include statement. -p <path> Path prefix for included file. -f <file> Force #include <file> (overwrite default). -b <file> Prepend #include <file> (preserve default include). --include <file> Parse <file> as an #include before the main source(s). -n <which> Do not display notes (-nn) or warnings (-nw). Compatibility option. --no-notes Do not display notes. --no-warnings Do not display warnings (implies --no-notes). --ignore-option-clashes Ignore all options that conflict with compilers, like -pthread conflicting with moc's -p option. --output-json In addition to generating C++ code, create a machine-readable JSON file in a file that matches the output file and an extra .json extension. --collect-json Instead of processing C++ code, collect previously generated JSON output into a single file. --output-dep-file Output a Make-style dep file for build system consumption. --dep-file-path <file> Path where to write the dep file. --dep-file-rule-name <rule name> The rule name (first line) of the dep file. Arguments: [header-file] Header file to read from, otherwise stdin. [@option-file] Read additional options from option-file. [MOC generated json file] MOC generated json output moc: Too many input files specified: 'Files/HDF_Group/HDF5/1.12.0/include' '../../rotortest/App/app.h' mingw32-make[2]: *** [Makefile.Debug:1271: debug/moc_app.cpp] Error 1 mingw32-make[2]: Leaving directory 'C:/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug/App' mingw32-make[1]: *** [Makefile:45: debug] Error 2 mingw32-make[1]: Leaving directory 'C:/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug/App' mingw32-make: *** [Makefile:50: sub-App-make_first] Error 2
I went to the Makefile.Debug.
Here is the line1270
and1271
C:/msys64/mingw64/bin/moc.exe /C/msys64/mingw64/bin/moc.exe $(DEFINES) --include C:/Users/VM/Desktop/build-rotortest-Desktop_Qt_MinGW_w64_64bit_MSYS2-Debug/App/debug/moc_predefs.h -IC:/msys64/mingw64/share/qt5/mkspecs/win32-g++ -IC:/Users/VM/Desktop/rotortest/App -I'C:/Program Files/HDF_Group/HDF5/1.12.0/include' -IC:/Users/VM/Desktop/rotortest/App/third-party/gsl -IC:/Users/VM/Desktop/rotortest/App/third-party/gsl -IC:/msys64/mingw64/include/QtWidgets -IC:/msys64/mingw64/include/QtGui -IC:/msys64/mingw64/include/QtCore -I. -IC:/msys64/mingw64/include/c++/10.1.0 -IC:/msys64/mingw64/include/c++/10.1.0/x86_64-w64-mingw32 -IC:/msys64/mingw64/include/c++/10.1.0/backward -IC:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.1.0/include -IC:/msys64/mingw64/include -IC:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.1.0/include-fixed -IC:/msys64/mingw64/x86_64-w64-mingw32/include ../../rotortest/App/app.h -o debug/moc_app.cpp
Any help?
-
Achilles' heel #1 in Linux/gcc: spaces in directories. Not in your build path, but in an include file:
Edit: there's a quick-and-dirty solution (very short-term, will not survive a qmake), open that Makefile.Debug file in an editor and change line 1271 so that the problematic include directory is surrounded by double quotes (not single), i.e. so it looks like this extract:
...Desktop/rotortest/App -I"C:/Program Files/HDF_Group/HDF5/1.12.0/include" -IC:/Users/VM/Desktop/rotortest/App/thir...
Again: very short-term solution :-)
-
@hskoglund Wowwww!!! Thank you so much!!
I saw that this single quotes + blank spaces problem is very present in a lot of places of my
Makefile.Debug
.@hskoglund said in MingW: A lot of warnings + too slow compiling:
Again: very short-term solution :-)
Is there a way to modify my
rotortest.pro
or any Qt Creator IDE configuration to resolve all occurrences at the same time?Thank you so much @hskoglund ! You are the best!
Fixing this located problem, I will check if the compilation time is Ok or not.
-
@fem_dev said in MingW: A lot of warnings + too slow compiling:
I saw that this single quotes + blank spaces problem is very present in a lot of places of my Makefile.Debug.
I manually replaced all occurrences of this problem in the
Makefile.debug
and compile it usingmingw32-make.exe
.
It compiles ok! No warnings and no errors!!! Build and run with success!!First problem: Fixed!!
Lets go to the final problem: The slower time to compile using MingW version.
Now, to measure how long each compiler takes to build my project, I have to be able to
clean
main build folder and build again switching between theses compilers inside the Qt Creator IDE:- MingW-w64 (GCC 10.1.0) (the last one)
- MSVC 2019
- GCC 9.3 (On my Ubuntu 20.04 machine - same hardware)
To do that, I need to be possible to clean up the build folder and rebuild all without fix the
Makefile.debug
manually.Is there a way to config Qt Creator IDE (GCC Based) to generate only
include
lines with double quotes?How can I do it?
-
Trying to add double quotes to those INCLUDEPATH += ... lines in the .pro file is almost impossible, because of the heavy munging that MSYS2 does (replaces all \ with / etc.)
But fear not, there's a sneaky way to get those double quotes to the command line:
in the .pro file, it involves replacing all theINCLUDEPATH += "C:\Path\Path With Spaces"
with
QMAKE_CXXFLAGS += -I\"C:\Path\Path With Spaces\"
Note: you only need to this replacement for the INCLUDEPATH s that have spaces in them.
-
@fem_dev said in MingW: A lot of warnings + too slow compiling:
Lets go to the final problem: The slower time to compile using MingW version.
UPDATE 1
I move my HDF5 dependency libray folder to my HD root on
C:\
. So it fix the "single quotes" problem and Qt Creator IDE can build my project from scratch now and I can switch between the compilers.Time to build my project:
- MSYS MingW-w64 GCC 10.1.0 based: 70 seconds
- MSVC 2019: 16 seconds
- GCC 9.3: 13 seconds (On my Ubuntu 20.04 machine)
So,
MSVC
andGCC
on Linux is very close time to build, butMSYS2 MingW-w64
is 5x slower using the same IDE version in the same machine.Using:
- Qt Creator IDE 4.12.4
- Qt 5.15
My machines hardware are:
- Intel Core i7 6 Cores 12 Threads 2.2GHz
- 32GB RAM
- 1TB NVMe storage
Is there a way to speed up the
MSYS2 MingW-w64
compiler?Obs.: Just to be clear, all 3 compilers are building my project without any warning or error messages!
-
@hskoglund said in MingW: A lot of warnings + too slow compiling:
QMAKE_CXXFLAGS += -I"C:\Path\Path With Spaces"
@hskoglund you are amazing!
-
Interesting about the compile times.
For another example, I have a project that used to compile in almost 1 hour on MSVC2015 I seem to remember.
Note: there's 2 large .h files that GitLab doesn't like, they can be downloaded here:
http://tripleboot.org/Projects/tctermscales.h.nogit
http://tripleboot.org/Projects/tcterms.h.nogitI just tried now (for all tests: I nuked the build folder and the .pro.user file):
MSVC2019 on WIn10: 19 minutes 43 seconds but with error: TWTCData\tcterms.h.nogit(2826) : fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj
Mingw81_32 on Win10: 52 minutes 23 seconds
gcc 9.3.0 on Ubuntu 20.04: 52 minutes 23 seconds
Mingw81_32 on Wine on Ubuntu 20.04: 50 minutes and 54 seconds
MSYS2 Mingw32 on Win10: 1 minute and 54 seconds
Apple clang version 11.0.3 on MacOS 10.15.6: 36 seconds
So in my case, MSYS2 performs rather well (only to be beaten by clang).
@JKSH : so maybe you'll have to drink that beer, because my project actually builds slightly faster on Wine than on a real Windows. Admittedly not much of a difference though...
-
@hskoglund said in MingW: A lot of warnings + too slow compiling:
@JKSH : so maybe you'll have to drink that beer, because my project actually builds slightly faster on Wine than on a real Windows. Admittedly not much of a difference though...
Dagnabbit! :-D
And I definitely wasn't expecting MinGW on Wine to beat native GCC on Ubuntu. Any ideas how that works?
@hskoglund said in MingW: A lot of warnings + too slow compiling:
gcc 9.3.0 on Ubuntu 20.04: 52 minutes 23 seconds
...
MSYS2 Mingw32 on Win10: 1 minute and 54 seconds...or how this works?