【问题标题】:Enable thread support for Perl in Windows?在 Windows 中启用对 Perl 的线程支持?
【发布时间】:2014-09-27 03:17:37
【问题描述】:

我正在尝试在我的 Perl 脚本中使用线程,在 Windows 7 上运行。我无法编译该脚本,因为 Perl 在最初安装时没有使用线程支持构建(以前的用户安装的 Perl 没有线程支持)。

如何重建带有线程支持的 Perl?

谢谢。

【问题讨论】:

    标签: multithreading perl parallel-processing perl-module


    【解决方案1】:

    大多数人在 Windows 上使用 ActivePerl 或 Strawberry Perl,两者都启用了线程支持。


    也就是说,我觉得你有一个在 Windows 上没有线程支持的 Perl 很奇怪。我想你可能弄错了。您可以使用检查您的 Perl 是否支持线程

    >perl -v | find "built for"
    ... for MSWin32-x86-multi-thread-64int
    

    或更直接地

    >perl -V:usethreads
    usethreads='define';
    

    【讨论】:

    • 当我执行第二个命令时,我得到:usethreads='undef';
    • "这是 perl,为 msys-64int 构建的 v5.8.8" 这是我的版本信息。
    • @Kratos,闻起来像Git Bash 内部发布的 Perl 版本。您可能想访问 ActiveState 或 Strawberry 网站并为自己获取一个有人想要使用的 Perl。
    • 这根本不是 Perl 的 Windows 版本。我认为 msys 是一个 unix 仿真环境。用 Windows 版本的 Perl 替换它可能会带来兼容性问题。不过,没有什么能阻止您安装多个版本的 Perl,但您必须确保为正确的目的使用正确的版本。
    • 希望您没有选择“运行 Git 并从 Windows 命令提示符中包含 Unix 工具”。那个版本的 Perl 是一个真正的信天翁。那些“..included Unix Tools..”也用非标准的findsort 程序“祝福”你。
    【解决方案2】:

    首先检查你的 perl 是否支持多线程:

    #!/usr/bin/perl
    use Config;
    $Config{useithreads} or die('This perl interpreter does not support execution threads.');
    print "This perl interpreter supports multithreading\n";
    

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      相关资源
      最近更新 更多