Release-Fehler VS17-Projekt mit QT

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
studi15
Beiträge: 5
Registriert: 23. April 2019 13:59

Release-Fehler VS17-Projekt mit QT

Beitrag von studi15 » 24. April 2019 10:04

Moin,

ich habe ein Visual Studio 17 Projekt, welches eine QT-GUI verwendet. Im Debug Modus läuft alles geschmiert. Wenn ich jetzt aber einen Release (x64) versuche, kommen in VS17 folgende Fehlermeldungen. Jemand eine Idee wie man das beheben kann? Ich vermute, dass es mit QT zusammenhängt. Die Einrichtung von QT hat allerdings mein Vorgänger gemacht. Da habe ich keine Ahnung von. Danke für eure Hilfe!

Code: Alles auswählen

1>------ Erstellen gestartet: Projekt: Compitum, Konfiguration: Release x64 ------
1>qtmaind.lib(qtmain_win.obj) : error LNK2038: Konflikt ermittelt für "_ITERATOR_DEBUG_LEVEL": Der Wert "2" stimmt nicht mit dem Wert "0" in AED.obj überein.
1>qtmaind.lib(qtmain_win.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MDd_DynamicDebug" stimmt nicht mit dem Wert "MD_DynamicRelease" in AED.obj überein.
1>MSVCRT.lib(initializers.obj) : warning LNK4098: Standardbibliothek "msvcrtd.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl Compitum::metaObject(void)const " (?metaObject@Compitum@@UEBAPEBUQMetaObject@@XZ)".
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl Compitum::qt_metacast(char const *)" (?qt_metacast@Compitum@@UEAAPEAXPEBD@Z)".
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl Compitum::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Compitum@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const Compitum::staticMetaObject" (?staticMetaObject@Compitum@@2UQMetaObject@@B)".
1>FileDialog.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl FileDialog::metaObject(void)const " (?metaObject@FileDialog@@UEBAPEBUQMetaObject@@XZ)".
1>FileDialog.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl FileDialog::qt_metacast(char const *)" (?qt_metacast@FileDialog@@UEAAPEAXPEBD@Z)".
1>FileDialog.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl FileDialog::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@FileDialog@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".
1>C:\Users\user\Documents\Compitum\src\x64\Release\Compitum.exe : fatal error LNK1120: 7 nicht aufgelöste Externe
1>Die Erstellung des Projekts "Compitum.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========
Zuletzt geändert von studi15 am 25. April 2019 10:32, insgesamt 1-mal geändert.

Christian81
Beiträge: 7316
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Release-Fehler VS17-Projekt mit QT

Beitrag von Christian81 » 24. April 2019 18:30

Wie hast Du das MSVC-Projekt erstellt? Mit qmake? Sieht mir nicht danach aus da er versucht gegen die qtmaind.lib zu linken was eindeutig die Debug-Version von qtmain.lib ist welche eigentlich gelinkt werden sollte.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

studi15
Beiträge: 5
Registriert: 23. April 2019 13:59

Re: Release-Fehler VS17-Projekt mit QT

Beitrag von studi15 » 25. April 2019 10:32

Moin,

ja mit qmake. Die meisten Fehler konnte ich mit ein bisschen Hilfe jetzt lösen. Der einzige Fehler der übrig bleibt, ist folgender. Hast du da eine Idee?

Code: Alles auswählen

1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl Compitum::metaObject(void)const " (?metaObject@Compitum@@UEBAPEBUQMetaObject@@XZ)".
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl Compitum::qt_metacast(char const *)" (?qt_metacast@Compitum@@UEAAPEAXPEBD@Z)".
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl Compitum::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Compitum@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".
1>Compitum.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const Compitum::staticMetaObject" (?staticMetaObject@Compitum@@2UQMetaObject@@B)".
1>C:\Users\user\Documents\Compitum\src\x64\Release\\Compitum.exe : fatal error LNK1120: 4 nicht aufgelöste Externe
1>Die Erstellung des Projekts "Compitum.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========

Christian81
Beiträge: 7316
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Release-Fehler VS17-Projekt mit QT

Beitrag von Christian81 » 25. April 2019 17:45

Wenn man qmake venutzt sollte eigentlich alles korrekt erzeugt werden. Ich würde nochmal die Makefiles löschen und mittels qmake neu erzeugen.
Die Fehler sehen auch so aus als hätte qmake hier keine moc-Datei für diese Klasse erzeugt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

studi15
Beiträge: 5
Registriert: 23. April 2019 13:59

Re: Release-Fehler VS17-Projekt mit QT

Beitrag von studi15 » 21. Mai 2019 11:02

Hi,

danke für die Hilfe. Das neu erzeugen hat nicht geklappt. Der Fehler ist weiterhin da. Er tritt nur im Release auf, nicht im Debug.

studi15
Beiträge: 5
Registriert: 23. April 2019 13:59

Re: Release-Fehler VS17-Projekt mit QT

Beitrag von studi15 » 7. August 2019 13:31

Hallo,

mittlerweile konnte ich den Fehler teilweise lösen. Mein Problem jetzt:

Führe ich die Release.exe aus kommt folgende Fehlermeldung:
could not find or load the Qt platform plugin "windows" in ""
Wenn ich versuche im QTCreator zu builden kommt folgende Warnung:
:-1: Warnung: winrt_manifest_install.path is not defined: install target not created
Hat jemand eine Idee?

Antworten