Zum Inhalt springen

wxWidgets-Bibliotheken in Konflikt mit Standardbibliotheken


PL1994

Empfohlene Beiträge

Hallo,

um wxWidgets verwenden zu können, muss man ja einige zusätzliche Abhängigkeiten beim Linker einstellen. Laut dieser (wxWidgets für Visual C++ CwCity.de - Tutorial -) Anleitung genau diese:

wxmsw28_core.lib

wxbase28.lib

wxtiff.lib

wxjpeg.lib

wxpng.lib

wxzlib.lib

wxregex.lib

wxexpat.lib

winmm.lib

comctl32.lib

rpcrt4.lib

wsock32.lib

odbc32.lib

Erstes Problem: Einige davon finde ich nicht in den Bibliotheksverzeichnissen, nämlich:

winmm.lib

comctl32.lib

rpcrt4.lib

wsock32.lib

odbc32.lib

Angegeben habe ich für mein Projekt jetzt (an die aktuelle wxWidgets-Version angepasst) diese:

wxmsw30u_core.lib

wxbase30u.lib

wxtiff.lib

wxjpeg.lib

wxpng.lib

wxzlib.lib

wxregexu.lib

wxexpat.lib

Zweites Problem: Ich bekomme eine Fehlermeldung vom Linker, nämlich: Linkertoolwarnung LNK4098

Ich soll also außer LIBC.lib alle mit /NODEFAULTLIB versehen. Ich habe das bei der Option Linker > Eingabe > Bestimmte Standardbibliotheken ignorieren mit dieser Zeile zu bewirken versucht:

/NODEFAULTLIB:[LIBCMT.lib, MSVCRT.lib, LIBCD.lib, LIBCMTD.lib, MSVCRTD.lib]

Funktioniert leider nicht - gleiche Fehlermeldung ... ich habe noch mehr Fehlermeldungen, aber hängen sicher mit letzterer zusammen.

Ich verzweifle langsam mit den Widgets ... :confused:

Gruß

PL1994

Link zu diesem Kommentar
Auf anderen Seiten teilen

um wxWidgets verwenden zu können, muss man ja einige zusätzliche Abhängigkeiten beim Linker einstellen. Laut dieser (wxWidgets für Visual C++ CwCity.de - Tutorial -) Anleitung genau diese:
Das ist das Problem mit Tutorials: Sie stellen immer eine Vereinfachung dar, die zwar den Einstieg erleichtert, aber auch wichtige Zusammenhänge vor dir versteckt.

Du solltest genau die Libs dazu linken, die du brauchst. Nicht blind einer Liste folgen.

Erstes Problem: Einige davon finde ich nicht in den Bibliotheksverzeichnissen, nämlich:

winmm.lib

comctl32.lib

rpcrt4.lib

wsock32.lib

odbc32.lib

Das sind Windows-Libs, die nichts mit wxWidgets zu tun haben. Visual C++ sollte von ganz allein in der Lage sein, diese zu finden.

Zweites Problem: Ich bekomme eine Fehlermeldung vom Linker, nämlich: Linkertoolwarnung LNK4098

Ich soll also außer LIBC.lib alle mit /NODEFAULTLIB versehen.

Nein. Ganz falsche Schlussfolgerung.

Du sollst darauf achten, dass dein Programm und deine Libs nicht mit unterschiedliche Versionen der Standard-Libs verlinkt sind. Das konkrete Problem hier dürfte sein, dass du dein Programm in der Debug-Konfiguration baust, aber die wx-Release-Libs dazu linkst. Das funktioniert nicht.

Schau dir mal die Projekteigenschaften des webview-Samples an. Beachte, wie sich bei Linker->General die Lib-Verzeichnisse ändern, wenn du zwischen einer DLL-Konfiguration und einer Nicht-DLL-Konfiguration wechselst. Beachte, die sich bei Linker->Input die Namen der Libs ändern, wenn du zwischen Debug und Release wechselst.

Es ist leider nicht immer alles so einfach, wie es in Tutorials dargestellt wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, das war es :) Jetzt habe ich das Problem eines nicht aufgelösten externen Symbols. Hängt wahrscheinlich damit zusammen, dass ich eben nicht die richtigen Bibliotheken angegeben habe. Wo kann ich nachsehen, welche Bibliotheken ich zum Beispiel für wxApp brauche?

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, nachdem ich jetzt endlich mal dazu gekommen bin, das auszuprobieren:

Danke schon einmal für deine Ratschlage und den Link zur Doku :)

Nachdem ich noch einmal die Anleitung in meinem Buch durchgegangen bin, habe ich auch dort eine Liste mit den benötigten Bibliotheken gefunden - und endlich funktioniert es.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...