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