Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

wxWidgets-Bibliotheken in Konflikt mit Standardbibliotheken

Empfohlene Antworten

Veröffentlicht

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

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.

  • Autor

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?

  • Autor

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.