Last week I decided to update a development environment, Windows XP Professional running in a virtual machine, with the latest version of ActivePerl and WxWidgets. However, when I had installed the Wx package via the Perl package manager the application I am developing didn't start but reported the following error in a message dialog:
This application has failed to start because wxbase28u_gcc_wxperl.dll was not found. Re-installing the application may fix this problem.
After clicking the OK button the following message (excerpt):
Can't load 'C:/Perl/site/lib/auto/Wx/Wx.dll' for module Wx: load_file:The specif ied module could not be found at C:/Perl/lib/DynaLoader.pm line 201.
showed up in the command prompt window.
If you bump into this issue, the shortest way to reproduce this issue is by entering the following on the command line:
perl -mWx -e1
The -m option attempts to load the Wx Perl module, which results in the aforementioned message dialog.
Today, after some investigating what exactly was being installed - enabling the Repo column in the Perl package manger GUI did help here - I noticed that Wx (version 0.89.1) got downloaded and installed from the wxperl repository but Alien-wxWidgets (version 0.48), a dependency, from the ActiveState repository.
The version of Alien-wxWidgets available via the wxperl repository at the time of writing was 0.39. So I decided to give the following a try:
And not unexpectedly, this solved the issue. When I entered the following at the command prompt:
perl -mWx -e1
no message dialog showed up.
It's unclear to me why the aforementioned DLL is missing from the more recent, 0.48, Alien-wxWidgets package but it looks like it's for now the best to install both packages from the wxperl repository.
If you want to do a fresh install of Wx the best path seems to be to first install the Alien-wxWidgets package from the wxperl repository and then the Wx package from the same repository.