in reply to Re^4: Need help debugging Wx on Strawberry Perl 5.26.1
in thread Need help debugging Wx on Strawberry Perl 5.26.1

You have the sources for the Wx XS extension, but are you also building the wxWidgets library from source or are you getting a binary from somewhere?

Replies are listed 'Best First'.
Re^6: Need help debugging Wx on Strawberry Perl 5.26.1
by thechartist (Monk) on Aug 26, 2019 at 04:07 UTC

    I had installed other Wx modules (ie. Ailen::wxWidgets) prior to installing this one. I am operating under the assumption that those installed correctly as that was what the CPAN result told me.

      Is the Makefile.PL file calling the Wx dlls provided by Alien::wxWidgets? Maybe some probing is needed to check what path is being used.

      And FWIW, I cannot get Alien::wxWidgets to compile using Strawberry perl so I cannot test it myself.

      C:\BERRYB~1\526~1.2_6\data\.cpanm\work\1566800678.620\Alien-wxWidgets- +0.69>perl Makefile.PL # running Build.PL Do you want to fetch and build wxWidgets from sources? [yes ] yes Which wxWidgets version? (2.8.10, 2.8.11, 2.8.12, 2.9.0, 2.9.1, 2.9.2, + 2.9.3, 2.9.4, 3.0.0, 3.0.1, 3.0.2) [3.0.2 ] 3.0.2 Which archive type? [tar.bz2 ] tar.bz2 Do you want to include OpenGL support [yes ]no Created MYMETA.yml and MYMETA.json Creating new 'Build' script for 'Alien-wxWidgets' version '0.69' C:\BERRYB~1\526~1.2_6\data\.cpanm\work\1566800678.620\Alien-wxWidgets- +0.69>Build Building Alien-wxWidgets if not exist gcc_mswudll mkdir gcc_mswudll process_begin: CreateProcess(NULL, C:/berrybrew/5.26.2_64_PDL/perl/sit +e/bin/ -c "if not exist gcc_mswudll mkdir gcc_mswudll", ...) failed. make (e=5): Access is denied. gmake: [makefile.gcc:5089: gcc_mswudll] Error 5 (ignored) if not exist ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll process_begin: CreateProcess(NULL, C:/berrybrew/5.26.2_64_PDL/perl/sit +e/bin/ -c "if not exist ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll", . +..) failed. make (e=5): Access is denied. gmake: *** [makefile.gcc:5639: ..\..\lib\gcc_dll] Error 5 system: gmake -f makefile.gcc all UNICODE=1 MSLU=0 BUILD=release SHAR +ED=1 DEBUG_INFO=default DEBUG_FLAG=1 LDFLAGS=" -m64" CPPFLAGS="-m64" +: 512 at inc/My/Build/ line 284.

        Just for further debugging:

        process_begin: CreateProcess(NULL, C:/berrybrew/5.26.2_64_PDL/perl/site/bin/ -c "if not exist gcc_mswudll mkdir gcc_mswudll", ...) failed.

        This suggests that the Module::Build / Alien::Build concoction wants to run what it thinks is a shell script through the shell, except that there is none defined:

        C:/berrybrew/5.26.2_64_PDL/perl/site/bin/ -c

        There is a shell missing after bin/. Of course, cmd.exe is a shell, but it doesn't take a -c command. The snippet passed to that "shell" is clearly cmd.exe syntax, so something goes wrong somewhere there. I don't know where that snippet comes from, so it's hard for me to say. Maybe that snippet is the WxWidgets-supplied Makefile so you have to look into makefile.gcc to see where/how it sets up a shell and how/why that shell thinks it can run commands with a *sh syntax when the commands are cmd.exe syntax.

        Update: Most likely, GNU make examines $ENV{SHELL} and if that is set to some weirdo value (or set at all), it will use that instead of falling back on cmd.exe. My advice is to unset $ENV{SHELL} and try again.

        If youre running Makefile.Pl do not call build

      The error appears to indicate that your wxWidgets library does not match your Wx XSUB. That is all I can say with certainty.

        Any suggestions on where to look in the sources to see the possible cause of the error? I'm not exactly sure where in Makefile.PL or some other spot where the compiler flags might be assigned.