Jump to content

wxWidgets - Fehler bei wxUSE_WEBVIEW

Empfohlene Beiträge

Hallo,

ich möchte mit Hilfe der "wxWidgets" ein GUI programmieren. Die Bibliotheken habe ich erstellt, Include- und Library-Verzeichnisse sind festgelegt.

Ich bekomme allerdings eine Fehlermeldung, von der ich nicht weiß, was ich damit anfangen soll. Außer zweier Klassendefinitionen (eine erbt von wxApp, die andere von wxFrame) habe ich noch nichts mit den wx-Klassen gemacht. Daran wird wohl nicht viel falsch sein ...

Die Fehlermeldung lautet: "wxUSE_WEBVIEW requires at least one backend". Sie wird hier in der Datei "chkconf.h" generiert:


#if wxUSE_WEBVIEW && !(wxUSE_WEBVIEW_WEBKIT || wxUSE_WEBVIEW_IE)

#   ifdef wxABORT_ON_CONFIG_ERROR

#       error "wxUSE_WEBVIEW requires at least one backend"

#   else

#       undef wxUSE_WEBVIEW

#       define wxUSE_WEBVIEW 0

#   endif

#endif /* wxUSE_WEBVIEW && !any web view backend */

Einige Zeilen vorher wird "wxUSE_WEBVIEW" definiert:

#ifndef wxUSE_WEBVIEW

#   ifdef wxABORT_ON_CONFIG_ERROR

#       error "wxUSE_WEBVIEW must be defined, please read comment near the top of this file."

#   else

#       define wxUSE_WEBVIEW 0

#   endif

#endif /* !defined(wxUSE_WEBVIEW) */

Was soll ich davon halten? Müsste "wxUSE_WEBVIEW" nach der Definition nicht 0 sein und irrelevant?

Gruß

PL1994

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
# error "wxUSE_WEBVIEW must be defined, please read comment near the top of this file."

Hast du das gemacht? Da steht folgendes:

/*
**************************************************
PLEASE READ THIS IF YOU GET AN ERROR IN THIS FILE!
**************************************************

If you get an error saying "wxUSE_FOO must be defined", it means that you
are not using the correct up-to-date version of setup.h. This happens most
often when using svn or daily snapshots and a new symbol was added to
setup0.h and you haven't updated your local setup.h to reflect it. If
this is the case, you need to propagate the changes from setup0.h to your
setup.h and, if using makefiles under MSW, also remove setup.h under the
build directory (lib/$(COMPILER)_{lib,dll}/msw[u][d][dll]/wx) so that
the new setup.h is copied there.

If you get an error of the form "wxFoo requires wxBar", then the settings
in your setup.h are inconsistent. You have the choice between correcting
them manually or commenting out #define wxABORT_ON_CONFIG_ERROR below to
try to correct the problems automatically (not really recommended but
might work).
*/[/code]

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ich habe das heute heruntergeladen und nichts verändert. Die setup.h müsste aktuell sein. Es stand eine setup.h für Debug und eine für Release zur Verfügung - habe inzwischen (eigentlich widersinnigerweise) beide probiert ... immer das Gleiche.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Was für ein Configure-Aufruf?

Ich habe nur Folgendes gemacht:

- wx.dsw in Visual Studio importiert

- einmal die Debug- und einmal die Release-Bibliotheken erstellt

- die setup.h unter lib\vc_lib\mswud\wx ins Verzeichnis {Include-Verzeichnis}\wx kopiert

- Include- und Library-Verzeichnis festgelegt

- versucht, einen Frame aufzubauen.

Fehlt da was?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Ist .dsw denn inkompatibel?
.dsw-Dateien sind für Visual C++ 6.0, das ist eine 16 Jahre alte Entwicklungsumgebung. Ich sehe aber gerade, dass das auch die im wxWiki beschriebene Vorgehensweise ist.

Im Source-Archiv gibt es auch eine Projektdatei für Visual C++ 2012: wx_vc11.sln.

- die setup.h unter lib\vc_lib\mswud\wx ins Verzeichnis {Include-Verzeichnis}\wx kopiert
Das ist vermutlich ein Fehler. Das ist der Header nur für Unicode Debug. Es gibt einen Wrapper in include\msvc\wx, der je nach Einstellungen den richtigen Header einbindet. Irgendwelche Header irgendwohin zu kopieren klingt schon grundsätzlich falsch.

Hast du include\msvc als Include-Ordner festgelegt?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Okay, ich habe die kopierte setup.h wieder herausgenommen und den Include-Ordner angegeben. Dann tauchte ein Fehler auf, der behoben wurde, indem ich wxTOOLKIT_PREFIX von msw zu mswu geändert habe. Das sollte wahrscheinlich normalerweise nicht nötig sein, aber es gibt nur den Ordner mswu (und mswud). Das Problem ist, dass ich jetzt trotzdem wieder den gleichen Fehler wie vorher habe: "wxUSE_WEBVIEW requires at least one backend" ...

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Dann tauchte ein Fehler auf, der behoben wurde, indem ich wxTOOLKIT_PREFIX von msw zu mswu geändert habe.
Wo hast du das geändert? Du solltest auf keinen Fall an den wx-Headern herumfummeln. Grundsätzlich solltest du die Finger von irgendwelchen Headerdateien lassen, die du nicht selbst geschrieben hast.

Wenn du nur die Unicode-Varianten der Bibliothek gebaut hast, solltest du dein Programm auf Unicode umstellen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wie baut man denn andere Varianten der Bibliothek? (Um auszuschließen, dass ich irgendeine Änderung vorgenommen habe, die zu dem Problem geführt hat, werde ich die wxWidgets jetzt erstmal neu extrahieren)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Wie baut man denn andere Varianten der Bibliothek?
Du sollst keine andere Variante bauen. Du sollst Unicode benutzen, und alte Projekte, die das nicht tun, möglichst bald auf Unicode umstellen, da der ANSI-Modus in absehbarer Zeit aus wxWidgets rausfliegt. So zumindest ein Kommentar in setup.h.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Meinst du bei Projekteigenschaften > Allgemein > Zeichensatz? Das habe ich jetzt auf Unicode umgestellt, vorher war aber schon "Multibyte-Zeichensatz verwenden" eingestellt; ist das nicht ohnehin Unicode?

Und wie schaffe ich es, dass jetzt auch die Unicode-Bibliotheken von wxWidgets erstellt werden (also auch der Ordner mswud)? Alles, was ich dazu bei wxWiki gefunden habe, ist, dass es eine Konfiguration "Debug Unicode" in VS geben müsste - die existiert aber nicht.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Meinst du bei Projekteigenschaften > Allgemein > Zeichensatz? Das habe ich jetzt auf Unicode umgestellt
Gut.

vorher war aber schon "Multibyte-Zeichensatz verwenden" eingestellt; ist das nicht ohnehin Unicode?
Nein.

Und wie schaffe ich es, dass jetzt auch die Unicode-Bibliotheken von wxWidgets erstellt werden (also auch der Ordner mswud)? Alles, was ich dazu bei wxWiki gefunden habe, ist, dass es eine Konfiguration "Debug Unicode" in VS geben müsste - die existiert aber nicht.
Die Bibliotheken werden immer als Unicode erstellt. Du musst also nur die "Debug"-Konfiguration bauen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Also, erfreulicherweise brauchte ich jetzt nicht mehr in irgendwelchen Setup-Einstellungen rumbasteln, damit der richtige Ordner gefunden wird. Allerdings habe ich immer noch die gleiche Fehlermeldung "wxUSE_WEBVIEW requires at least one backend" ...

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Tatsache, das kann ich ... Ich habe mal die Projekteigenschaften verglichen: Ein Unterschied ist, dass die zusätzlichen Include- und Bibliotheksverzeichnisse nicht als absolute, sondern relative Pfade angegeben sind. Das sollte aber nicht stören, schätze ich.

Außerdem sind bei Linker > Eingabe > Zusätzliche Abhängigkeiten einige weitere Bibliotheken angegeben. Kann es sein, dass man die generell angeben muss?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ja, ich hatte von einem früheren Versuch noch "#include <wx\setup.h>" drin. Damit ist wohl irgendetwas kollidiert ... danke dir! Jetzt habe ich zwar eine andere, ziemlich lange Fehlerliste, aber das versuche ich erst einmal selbst zu beheben :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden


×