mieki256's diary



2023/06/18() [n年前の日記]

#1 [tcltk] Windows用のTcl/Tkをいくつかインストールその2

Windows10 x64 22H2上で、Windows上で使える Tcl/Tk、Magicsplat (tcl-8.6.13-installer-1.13.0-x64.msi) をインストールしようとしてもブルースクリーンになってしまうのが気になって、その後もインストールできる方法が無いか試していた。

とりあえず、インストール時に Advanced や all user を選ばず、フツーに Install を選んで、C:\Users\(USERNAME)\AppData\Local\Apps\Tcl86\ 以下にインストールした場合はブルースクリーンにならずに済んだ。とメモ。

もっとも、この場合、そのユーザしか使えない状態でインストールされているわけだけど…。

exe化できるか試してみた :

Tcl/Tk用スクリプトを exeファイルにしてみたい。昔試した際のメモを参考にしつつ作業。

_mieki256's diary - Tcl/TkをWindows10にインストール
_mieki256's diary - Tcl/Tkのスクリプトをexe化

tclkit.exe、sdx.kit (sdx-20110317.kit) の入手先は以下。

_TclKits: Downloads
_Tcl3D - Applications - Tclkits
_Tclkit support files:

tclkit-8.6.*-win32-*.exe を入手できたので、tclkit.exe にリネームして、それらを使ってexe化できそうか試してみたのだけど、以前の手順では上手くいかなかった。別の手順なら exe化できた。

ググっていたら、以下のページにヒントらしきものが書いてあった。

_sdx: howto
For native kits, remember the tclkit that runs sdx cannot be the same tclkit that is used for -runtime .. so make a copy:

sdx: howto より


「sdxを実行するための tclkit と、-runtime に指定する tclkit は同じではいけない。コピーを作って指定せよ」とのこと。

また、上記のページには以下のような指定方法も記述されていた。これは Linux上でのやり方だろうけど、Windows上でも使えそうな気がする…。
 $ ./tclkit sdx.kit qwrap hello.tcl -runtime tclkit.exe
 $ mv hello hello.exe

そんなわけで、以下を試みた。
  • sdx-20110317.kit と tclkit-8.6.3-win32-x86_64.exe を入手。
  • sdx-20110317.kit を sdx.kit にリネーム。
  • tclkit-8.6.3-win32-x86_64.exe を tclkit.exe にリネームしつつコピー。中身/バイナリとしては同じでもファイル名が異なる tclkit が2つある状態にしておく。

以下を実行。
tclkit.exe sdx.kit qwrap test001.tcl -runtime tclkit-8.6.3-win32-x86_64.exe
ウインドウが開いたままになるので、exit と打って抜ける。

test001 というファイルが作成されたので、test001.exe にリネーム。
ren test001 test001.exe

test001.exe を実行してみたところ、動いてくれた。

tclkit 8.6.0、8.6.3、8.6.9 で試してみたけれど、どの版の exe も同じように動いてくれた。

上手く行かなかった手順についてメモ :

sdx.bat qwrap hoge.tcl や sdx.bat unwrap hoge.kit をするたびに、ウインドウが表示されてそのまま残り続けるのだけど、exit と打ち込んでその都度ウインドウを閉じていった。そうしないとプロセスが残り続ける。

最後に sdx.bat wrap hoge.exe -runtime tclkit.exe と打ってexe化しようとしたけれど、ここでよく分からないエラーが出た。
file in use, cannot be prefix: D:/home/prg/tcl/tcl2exe/exetest02_863/tclkit.exe
SDX cannot continue (could not read link
"D:/home/prg/tcl/tcl2exe/exetest02_863/sdx.kit": not a directory
while executing
"file readlink $mkflle")

tclkit 8.6.3、8.6.0、8.6.9、x86、x86_64等、各版を使って以前の手順を試してみたけど、どれも最後に似たようなエラーが出てダメだった。

ちなみに、sdx.kit を動かす tclkit.exe と、-runtime で指定する tclkit を別々のファイルにしたら、エラーは出なかったし、exe も生成できたし、出来上がった exe の実行もできた。

以上です。

過去ログ表示

Prev - 2023/06 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project