• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Qt, problem z kompilacją programu w MinGW

Cloud VPS
+1 głos
367 wizyt
pytanie zadane 6 października 2019 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)
zamknięte 7 października 2019 przez Jakub 0

Witam, napisałem prosty projekt w Qt, wykorzystując kompilator MSVC2017 64x wszytko działa dobrze, jednak kiedy wykorzystam 32 bitowy MinGW pojawia się dość sporo błędów:

nie wiem do końca dlaczego tym kończy się zmiana kompilatora, bardzo mi zależy żeby całość była stworzona w MinGW. Oto mój plik *.pro:

#-------------------------------------------------
#
# Project created by QtCreator 2019-09-30T19:15:03
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Calculator
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

CONFIG += c++11

SOURCES += \
        main.cpp \
        calculator.cpp \
    info.cpp \
    parser.cpp

HEADERS += \
        calculator.h \
    info.h \
    ast.h \
    parser.h

FORMS += \
        calculator.ui \
    info.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RC_ICONS = icon.ico

Szukałem podobnych pytań na różnych forach ale nie udało mi się rozwiązać problemu. Nie wiem nawet jakie mogę podać dodatkowe informacje na ten temat...

w razie czego mogę udostępnić kod i inne screeny jeśli jest to potrzebne. Bardzo dziękuje za pomoc :)

komentarz zamknięcia: problem rozwiązany.
komentarz 6 października 2019 przez tkz Nałogowiec (42,060 p.)

Trzecia linia, zmień na 

virtual const char *what() const noexcept override

Nie wiem czy pomoże tak mi się wydaje. 

komentarz 6 października 2019 przez Jakub 0 Pasjonat (23,120 p.)
niestety, poprawiłem to ale wciąż to samo. To chyba nie jest kwestia mojego kodu a bardziej coś w konfiguracjach środowiska.
komentarz 6 października 2019 przez j23 Mędrzec (195,240 p.)

nie wiem do końca dlaczego tym kończy się zmiana kompilatora

Kompilator VC++ potrafi przymykać oko na różne odstępstwa od standardu, i dlatego coś, co przejdzie bez większego problemu w VC++, w MinGW/GCC przejść już nie musi. Zatem jedyne co Ci pozostaje to poprawić błędy w kodzie.

1 odpowiedź

0 głosów
odpowiedź 7 października 2019 przez Bondrusiek Maniak (61,440 p.)
wybrane 7 października 2019 przez Jakub 0
 
Najlepsza

Spróbuj użyć qmake. Kliknij prawym na projekt i wybierz opcje uruchom qmake. Dzięki temu zostanie wygenerowany plik Makefile. Możesz wtedy porównać pliki dla wersji MinGW i MSVC.

Różnice MinGW i MSVC na stackoverflow: https://stackoverflow.com/questions/9203104/windows-qt-with-mingw-or-visual-studios.

komentarz 7 października 2019 przez Jakub 0 Pasjonat (23,120 p.)

Problem okazał się dość prosty, w pliku Calculator.pro miałem napisane CONFIG += C++11 podczas gdy używałem elementów języka C++14. Kompilator MSVC zignorował informacje z pliku *.pro i poprawnie skompilował projekt, natomiast MingGW musi wymagać dokładnej informacji o wersji...

Podobne pytania

0 głosów
1 odpowiedź 484 wizyt
pytanie zadane 20 lipca 2019 w C i C++ przez Ewaryst Ławecki Obywatel (1,710 p.)
–1 głos
0 odpowiedzi 327 wizyt
pytanie zadane 23 lipca 2019 w C i C++ przez Ewaryst Ławecki Obywatel (1,710 p.)
0 głosów
1 odpowiedź 453 wizyt
pytanie zadane 10 marca 2018 w C i C++ przez niezalogowany

93,454 zapytań

142,449 odpowiedzi

322,718 komentarzy

62,833 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...