Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Fail to pp cairo, pango on windows

by llancet (Friar)
on Nov 23, 2009 at 07:27 UTC ( [id://808742]=perlquestion: print w/replies, xml ) Need Help??

llancet has asked for the wisdom of the Perl Monks concerning the following question:

Just that: in my windows Vista, PAR::Packer don't pack some dll, at least Cairo.dll, maybe still some others like pango.dll.

This website:http://www.peculiarities.com/code/perl.html#gtk-win-par provides useful instructions, but it's for cygwin, many things are different. Is anybody encountered same problem? Thanks!

Things I used:
use strict; use threads; use threads::shared; use Glib qw/TRUE FALSE/; use Gtk2 qw/-init -threads-init/; use Cairo; use POSIX qw/ceil floor/; use Fatal qw/open close opendir closedir/; use File::Basename qw/basename/;

Replies are listed 'Best First'.
Re: Fail to pp cairo, pango on windows
by marto (Cardinal) on Nov 23, 2009 at 10:15 UTC

    You could at least show us how you are using pp, or the actual error message you experience :) Try something like:

    pp -l libCairoPerl.dll -l Cairo.dll -l Glib.dll -l Gtk2.dll .....

    Though you should use the correct path to these libraries. Please note that I've not tested this. Double check the pp documentation, and let us know if you have any further problems with this.

    Cheers,

    Martin

      This time, I included some related files, but still got a failure.

      pp params:
      D:\>pp -l c:\camelbox\site\lib\auto\Glib\Glib.dll -l c:\camelbox\site\lib\auto\Gtk2\Gtk2.dll -l c:\camelbox\site\lib\auto\Cairo\Cairo.dll -l c:\camelbox\site\lib\auto\Pango\Pango.dll -l c:\camelbox\lib\libcairo.dll.a -l c:\camelbox\lib\libcairo.dll.a -o Corr.exe mydoc\Corr.pl
      Error message:
      GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion `g_t +ype_from_name (name) == 0' failed at C:/camelbox/lib/DynaLoader.pm li +ne 226. cannot register alias Gtk2::Pango::Attribute for the unregistered type + (null) at C:/camelbox/lib/DynaLoader.pm line 226. Compilation failed in require at script/Corr.pl line 16. BEGIN failed--compilation aborted at script/Corr.pl line 16.

        I'm not a camelbox user, their mailing list has several threads on this topic which I found via seraching google. Perhaps you should ask over at http://code.google.com/p/camelbox/ either via IRC or their google group.

        You don't want libcairo.dll.a What you want is to use lisdlls (or dependencywalker) to find which dlls are loaded, which for me turned out to be
        -l libglib-2.0-0.dll -l libgobject-2.0-0.dll -l libgthread-2.0-0.d +ll -l libcairo-2.dll -l libfontconfig-1.dll -l libexpat-1.dll -l +freetype6.dll -l libpng12-0.dll -l zlib1.dll -l libpango-1.0-0.dll + -l libgmodule-2.0-0.dll -l libpangocairo-1.0-0.dll -l libpangoft2 +-1.0-0.dll -l libpangowin32-1.0-0.dll -l libatk-1.0-0.dll -l libgd +k-win32-2.0-0.dll -l libgdk_pixbuf-2.0-0.dll -l libgio-2.0-0.dll - +l libgtk-win32-2.0-0.dll -l intl.dll
        But that didn't work It seems like PAR/Gtk2-perl teams could use an infusion of cash :)

        You should use the Cava packager, I've tested it just now and it worked.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://808742]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2024-04-24 16:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found