gpt4 book ai didi

perl - 尝试从使用 tkx (Tcl/tk) 的 Perl 脚本创建独立应用程序

转载 作者:行者123 更新时间:2023-12-02 09:00:56 26 4
gpt4 key购买 nike

这是我的规范:OS X 老虎珀尔5.8使用与 ActiveTcl v8.5 捆绑在一起的 Tkx

我已经使用 PAR/pp 成功创建了具有上述配置的独立应用程序,但这并不是一个完全令人满意的解决方案:

  • 仍然需要安装 Tcl/Tk
  • 在带有默认菜单的 Tcl/Tk 窗口中打开
  • 每次运行应用程序时都会打开终端

我可以采取其他途径来绕过这些问题吗?

最佳答案

如果您使用 ActivePerl,它应该与 Tcl 和 Tk 的共享对象捆绑在一起。这些文件是 Tcl.so 和 tkkit.so(Windows 上为 Tcl.dll 和 tkkit.dll)。您需要配置 pp 以使用 -l 将它们与您的独立可执行文件捆绑在一起。选项。例如(在 Windows 上):

-l C:/Perl/lib/auto/Tcl/tkkit.dll
-l C:/Perl/lib/auto/Tcl/Tcl.dll

不幸的是,PAR 无法将共享对象解压到正确的位置,以便 Tkx 应用程序找到它们。您可以通过设置 $ENV{PERL_TCL_DL_PATH} 来解决这个问题在加载 Tkx 之前。要使应用程序在有或没有 PAR 的情况下都可用,请使用 BEGIN block 来检测它何时在 PAR 下运行:

use strict;
use warnings;
use File::Spec::Functions;

BEGIN {
if (exists $ENV{PAR_PROGNAME}) {
use Config ();
$ENV{PERL_TCL_DL_PATH} = catfile(
$ENV{PAR_TEMP},
'tkkit.' . $Config::Config{dlext},
);
}
}

use Tkx;
# remainder of script...

pp有一个-g (或 --gui )选项来构建没有控制台窗口的应用程序,但它仅适用于 Windows。我不知道是否有办法在 OS X 上隐藏控制台。

至于在带有默认菜单的 Tcl/Tk 窗口中打开应用程序,我不知道。我怀疑这是因为您使用的是 ActiveTcl 安装而不是与 ActivePerl 捆绑在一起的共享对象。

关于perl - 尝试从使用 tkx (Tcl/tk) 的 Perl 脚本创建独立应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1285087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com