Thread TCL Exe erstellen Strawberry (4 answers)
Opened by Hummer87 at 2013-11-14 10:56

Max_Perlbeginner
 2018-06-02 20:42
#188500 #188500
User since
2016-04-04
107 Artikel
BenutzerIn
[default_avatar]
Hallo, alle,

ich weiß, das ist ein altes Problem. Aber ich habe die letzten Tage auch damit rumgekämpft und eine - wie ich finde - recht ordentliche Lösung gefunden, die ich mit euch teilen möchte. Vlt. findet es ja der ein oder andere hilfreich.

Das Problem ist, dass wir die Shell-Umgebungsvariable $ENV{TCL_Library} ändern müssen, was nicht ganz einfach ist, weil der Kindprozess (das Perlskript) nicht ohne Weiteres die Umgebungsvariablen des Elternprozesses ändern kann.

Meine Lösung ist nun folgender BEGIN Block:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
BEGIN {
if ($ENV{PAR_TEMP} && $ENV{TCL_Library} ne "$ENV{PAR_TEMP}/inc/lib/tcl8.6") {
print "Starting a Tcl::Tk PAR-exe file\n";
print "We need to set shell environment variables first \n";
$ENV{TCL_Library} = "$ENV{PAR_TEMP}/inc/lib/tcl8.6";
# I don't know whether this is really necessary?
$ENV{TK_Library} = "$ENV{PAR_TEMP}/inc/lib/tcl8.6";
system($0);
exit();
}
}



Das Perl Skript muss dann mit folgendem Befehl gepackt werden: pp -l "C:/Tcl/bin/tcl86.dll" -l "c:/Tcl/bin/tk86.dll" -l "c:/Tcl/bin/zlib1.dll" -a "C:/Tcl;./" -o tktest.exe ./tktest.pl.

Wichtig ist dass der Ordner "C:/Tcl", in "./" umbenannt werden muss. Vor allem der Punkt vor dem "/" ist wichtig, keine Ahnung warum :-)

Viele liebe Grüße,
Max
Last edited: 2018-06-02 20:46:58 +0200 (CEST)

View full thread TCL Exe erstellen Strawberry