• 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

Object Storage Arubacloud
+1 głos
277 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,000 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 (194,920 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,370 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ź 249 wizyt
pytanie zadane 20 lipca 2019 w C i C++ przez Ewaryst Ławecki Obywatel (1,710 p.)
–1 głos
0 odpowiedzi 203 wizyt
pytanie zadane 23 lipca 2019 w C i C++ przez Ewaryst Ławecki Obywatel (1,710 p.)
0 głosów
1 odpowiedź 399 wizyt
pytanie zadane 10 marca 2018 w C i C++ przez niezalogowany

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...