Hello,

I am using MSYS2/MinGW64 to run a Gtk3 Perl application.

Has anyone been able to get PAR to work properly in this situation?

I notice that there is a similar issue
<https://rt.cpan.org/Public/Bug/Display.html?id=55390> that was opened
in 2010 for a Gtk2 program.

I translated the script that was attached to that issue to a Gtk3
equivalent (which I save as test.pl):

    use Gtk3 -init;

    my $window = Gtk3::Window->new ('toplevel');

    my $button = Gtk3::Button->new ('Quit');
    $button->signal_connect (clicked => sub { Gtk3->main_quit });
    $window->add ($button);

    $window->show_all;
    Gtk3->main;

When I run the following pp command, I get the test.exe as I expect:

    ALL_LIBS=$(pkg-config.exe  --libs gobject-introspection-1.0 expat 
cairo-gobject gtk+-3.0 | perl -MText::ParseWords -E 'my @paths = map { $libname 
= s/^-l//r; glob("C:/msys64/mingw64/bin/lib$libname*.dll") } grep { /^-l/ } 
shellwords(<>); print "-l $_ " for @paths')
    perl -Ilib $(which pp) -o test.exe test.pl $ALL_LIBS

But when I run the test.exe, I get the following output:

    $ ./test.exe
    Can't load 
'C:\msys64\tmp\par-7a616b69\cache-b75d584224b1a1061779c0bb91d380c83ae4a68e\79d2d23b.dll'
 for module Cairo::GObject: load_file:The specified module could not be found 
at C:/msys64/mingw64/lib/perl5/core_perl/DynaLoader.pm line 193.
     at C:/msys64/mingw64/lib/perl5/site_perl/PAR/Heavy.pm line 120.
    Compilation failed in require at Gtk3.pm line 47.
    BEGIN failed--compilation aborted at Gtk3.pm line 47.
    Compilation failed in require at script/test.pl line 1.
    BEGIN failed--compilation aborted at script/test.pl line 1.

The same script can be compiled fine on a Debian GNU/Linux system.

Any tips for how I can get this working or how to debug the problem?

Cheers,
- Zaki Mughal

Reply via email to