Alles was man für ein wxWidgets-Projekt unter Windows 7 benötigt.

Welche Compiler werden benötigt, wie kompiliert man wxWidgets unter Windows und worauf sollte man noch achten.

 

Zunächst benötigt man einen Compiler. Hierbei habe ich drei verschiedene Methoden getestet.

1) CodeBlocks

2) MinGW

3) TDM-GCC

Nach erfolgter Installation sollte man darauf achten, dass im „Path“ der Pfad zum bin-Verzeichnis der Installation ganz vorne steht.

ACHTUNG: Der Pfad sollte auch keine Leerzeichen enthalten.

INFO: Beim TDM-GCC ist es auch möglich statt den „Path“ anzupassen mit (C:/MinGW32/)mingwvars.bat den „Path“ temporär zu ändern, um die nötigen Pfadvariablen des Compilers zu setzen.

 

Als nächstes benötigen wir eine Shell. Hier hat man die Möglichkeit die Windows eigene PowerShell zu verwenden oder man greift auf Systeme wie z.B. MSYS zurück.

ACHTUNG: Bei mir kam es zur Wechselwirkung mit einer MSYS-Git installation und der verwendung der PowerShell. Nach der Installation der offiziellen Git-Bash statt MSYS-Git funktionierte alles wieder einwandfrei.

ACHTUNG: Bei bestehenden Projekten muss natürlich der Pfad zum Compiler angepasst werden, falls zuvor ein anderer verwendet wurde.

 

Die Version von wxWidgets.2.8.12 ist wahlweise mit dem Installer wxMSW oder per ZIP-Packet zu beziehen (wxWidgets).

Meine wxWidgets-Version (2.8.12) habe ich wie folge kompiliert:

mingw32-make.exe -j4 -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 CXXFLAGS="-fno-keep-inline-dllexport"

ACHTUNG: Durch das -j4 werden 4-Threads parallel verwendet, hierbei kann es nötig sein 3-4 mal den Befehl einzugeben bis die Kompilation anläuft.

Beschreibungen zu den einzelnen Parametern können hier eingesehen werden: http://wiki.wxwidgets.org/WxWidgets_Build_Configurations

WICHTIG: Beim Fehler „Memory Exhausted“ half bei mir nur diese Option: CXXFLAGS=“-fno-keep-inline-dllexport“ der TDM-GCC ist hierbei alleine keine Hilfe, wie es in der Quelle (wxWidgets Wiki) steht, diese Option wird im Zusammenhang mit SHARED=1 und MONOLITHIC=1 benötigt, da sonst ld.exe abstürtzt beim Linken der Bibliothek.

 

Quelle: http://wiki.wxwidgets.org/Compiling_wxWidgets_with_MinGW

Einen Dank an Thorsten Geppert für die tatkräftige Unterstützung bei der Fehlersuche hierzu!

wxWidgets Entwicklung unter Windows 7