You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strawberry Perl 5.38安装Tk-804.036遇编译及运行异常求助

Strawberry Perl 5.38.0 + Tk-804.036 编译与运行问题及兼容版本查询

环境与初始问题

运行Strawberry Perl 5.38.0(MSWin32-x64-multi-thread版本),从CPAN下载最新版Tk-804.036后,执行perl Makefile.PL时出现大量编译错误。

已尝试的修改操作

参考@HaraldJoerg的帖子《Tk build fails (Perl 5.36 sp536 20230420)#98》,对代码做了以下修改:

  • 全局替换项目中所有.c和.h文件(如pTk\mTk\xlib\X11\X.h、pTk\tkBind.c等)里的ControlMask为ControlMask_BUGBUG;
  • 在所有包含SVt_RV的文件(config/svtrv.c、Event\pTkCallback.c)中,将case SVt_IV:替换为:
#ifdef HAS_REAL_SVT_RV
case SVt_RV:
#endif
  • 在config/pmop.c文件中,将op_pmdynflags改为op_pmflags,并删除包含op_pmpermflags的行。

修改后的状态

  • 执行make realclean和perl Makefile.PL可完成编译,仅config/Hstrdup.c文件存在“exit函数隐式声明”的轻微警告;
  • make test仍抛出大量指针转错误尺寸整数等警告,使用make -i test和make -i install强制完成安装后,运行基础Tk示例程序:
use Tk;
my $mw = MainWindow->new;
$mw->title("Hello World");
$mw->Button( -text => "Done", -command => sub { exit} )->pack;
MainLoop;

程序无任何反应,直接返回命令行。

待解决问题

  1. 作为开源软件修改新手,不知道如何提交修复编译错误的代码;
  2. 想了解有哪些兼容的Strawberry Perl与Tk版本组合。

内容的提问来源于stack exchange,提问作者Orville Weyrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 01:15:18