Steffen Mueller wrote:
>> On Fri, 26 Sep 2008, Michael Carman wrote:
>>> Tkx depends on tkkit.dll, which isn't found when I try to run the
>>> program [...] I found a thread in the archives that suggested 
>>> using the -l <lib> option. If I do that the DLL does get unpacked
>>> to the cache root, but Tcl.pm can't find it there.
> 
> In the cache root or in $cache_root . "/shlib"?

It gets unpacked to the cache root. In the *.exe it's under
/shlib/MSWin32-x86-multi-thread.

>> You should be able to set the PERL_TCL_DL_PATH environment variable
>> to point to the tkkit.dll.  You need to do this in a BEGIN block 
>> before you "use" the Tcl or Tkx modules.
> 
> If you want the program to run with or without PAR, you can check the
> PAR_PROGNAME environment variable:

I do. That's just what I needed to make the $ENV{PERL_TCL_DL_PATH}
option usable. Thank you!

> A final thing you could try is adding the shared object file to 
> inc/lib/auto/Tcl with -atkkit.dll;lib/auto/Tcl/tkkit.dll but I fear 
> that won't make the extraction code extract it either.

Nope. That's the first thing I tried when I thought that the library
wasn't getting included in the archive. It was; it just doesn't get
extracted from there.

> you can probably use PAR::read_file("lib/auto/Tcl/tkkit.dll") to get
> the contents of the file (hopefully in binmode) and write them to
> wherever you like.

In this case it's easier to set $ENV{PERL_TCL_DL_PATH}, but that's good
to know if I ever don't have another option.

-mjc

Reply via email to