
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 -e1The -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 -e1no 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.