Subject: | gtk2 dependencies break pp executable |
Hello,
after making an executable with gtk2 dependencies I get the following
messages when the exe is run:
GLib-GObject-CRITICAL **: g_object_steal_qdata: assertion `quark > 0'
failed at script/test.pl line 18.
GLib-GObject-CRITICAL **: g_object_set_qdata_full: assertion `quark >
0' failed at script/test.pl line 18.
Can't locate object method "signal_connect" via package "Gtk2::Window"
at script/test.pl line 19.
Gtk2.dll, Glib.dll and Cairo.dll libraries must be included with -l
parameter to pp. They are consequently packed both in lib/auto/$path
and shlib/MSWin32-x86-multi-thread directories.
Version 0.73 packs them only in shlib/MSWin32-x86-multi-thread and this
executable then runs smoothly.
The following patch resolves the problem.
--- ScanDepsOrig.pm 2008-01-23 18:19:33.221903700 +0000
+++ ScanDeps.pm 2008-01-23 18:28:34.961451200 +0000
@@ -906,6 +906,7 @@
my ($path, $basename) = ($1, $2);
foreach (_glob_in_inc("auto/$path")) {
+ next if $_->{file} =~ m{(Glib)|(Cairo)|(Gtk2)} and $^O
eq 'MSWin32';
next if $_->{file} =~ m{\bauto/$path/.*/}; # weed out
subdirs
next if $_->{name} =~ m/(?:^|\/)\.(?:exists|
packlist)$/;
my $ext = lc($1) if $_->{name} =~ /(\.[^.]+)$/;
OS is windows with perl v5.10.0.
Radek