Perl und wxPerl (wxWidgets) auf dem Mac (Apple Silicon)
Diese Hilfe erklärt, warum das CPAN-Modul Wx (wxPerl) unter macOS und Apple Silicon oft nicht mit der Standardkombination „CPAN Wx 0.9932 + aktuelles Homebrew-wxWidgets“ funktioniert, und wie Sie stattdessen eine funktionierende Installation mit Homebrew wxWidgets 3.2 und dem sciurius-Fork aufsetzen.
Typische Probleme (Mac + Perl + wxWidgets)
-
CPAN Wx 0.9932 ist für
wxWidgets 3.2/3.3 auf dem Mac nicht vollständig
angepasst: Abbruch bei Alien::wxWidgets (fehlende
adv-Library in der generierten Konfiguration gegenüber 3.3) oder später in Grid.c (API wieGetViewWidth,wxGridCellEditorvs.wxClientDataContainer). -
Selbst nach manuellen Korrekturen am Grid folgen häufig weitere
Fehler in Kernmodulen (z. B.
Frames.c,GDI.c) — die offizielle CPAN-Version ist als Ganzes für wx 3.2 unter macOS ungeeignet. -
Homebrew
wxwidgets(3.3.x) undwxwidgets@3.2parallel: Für wxPerl mit dem empfohlenen Fork wird wxWidgets 3.2 benötigt; der Fork ist nicht mit älterem wx unter 3.2 kompatibel. -
Perl-Architektur: Wie bei Tk sollte
perlarm64 sein, passend zu den Homebrew-Bibliotheken.
Wx 0.9932.
Empfohlene Lösung: Homebrew wxWidgets 3.2 + sciurius
1. Homebrew-Pakete
brew install wxwidgets@3.2
brew install cpanminus
Auf Apple Silicon zeigt Homebrew wx-config für 3.2
typischerweise so an (Dateiname kann
wx-config-3.2 heißen):
ls "$(brew --prefix wxwidgets@3.2)/bin"
2. Umgebungsvariablen (vor jedem Build/CPAN)
export WX_CONFIG="/opt/homebrew/opt/wxwidgets@3.2/bin/wx-config-3.2"
export PATH="/opt/homebrew/bin:$PATH"
Auf Intel-Mac mit Homebrew unter /usr/local die Pfade
entsprechend anpassen. Prüfen:
"$WX_CONFIG" --version
file "$(which perl)"
3. Alien::wxWidgets und Wx installieren (Reihenfolge)
Zuerst Alien::wxWidgets (sciurius), danach Wx (sciurius wxPerl):
cpanm --notest https://github.com/sciurius/perl-Alien-wxWidgets/archive/refs/tags/R0.73.tar.gz
cpanm --notest https://github.com/sciurius/wxPerl/archive/refs/tags/R3.005.tar.gz
cpanfile.wxperl, die Textdoku
doku/wxperl-macos.txt und das Skript
shell/build-wxperl-macos.sh (lädt Tarballs, setzt
WX_CONFIG, baut und installiert).
4. Test
perl -MWx -e 'print Wx::wxVERSION_STRING, "\n"'
perl hello_world_wx.pl
Im Beispielskript müssen use Wx … und die wx-Konstanten
im gleichen package stehen wie OnInit (siehe
Projekt-hello_world_wx.pl).
Optional: Nur historisch — CPAN 0.9932 und Grid-Patch
Wer ausnahmsweise an Wx 0.9932 arbeitet, findet unter
patches/wxperl-0.9932-wxwidgets32-macos.patch Anpassungen
für Grid/typemap und GetViewWidth —
das reicht auf dem Mac aber nicht für einen
vollständigen Build; der sciurius-Fork bleibt der empfohlene Weg.