【问题标题】:How to tell cpan (ActiveState) to use MinGW compiler如何告诉 cpan (ActiveState) 使用 MinGW 编译器
【发布时间】:2014-03-08 13:04:09
【问题描述】:

我曾经使用 MinGW 来编译 cpan 模块。现在在我的新计算机上,我安装了 VisualStudio,CPAN 现在尝试使用 vs-compiler 并失败,因为它找不到“sys/types.h”。

如何告诉 cpan 使用 MinGW?我找不到为此的命令行选项。我可以使用 vs-compiler 解决其他问题吗?我会把 sys/types.h 放在哪里?如何将包含命令从 cpan 传递给编译器?

【问题讨论】:

    标签: perl compilation mingw cpan


    【解决方案1】:

    如果您尝试使用与构建 Perl 不同的 C 编译器来编译 CPAN 模块,那么您就是在自找麻烦。带有 XS 代码的典型 Perl 模块使用 Perl 配置中的编译器标志(请参阅perl -V)。由于 ActivePerl 是使用 MSVC 构建的,$Config{ccflags} 包含特定于 MSVC 的标志,这些标志不适用于 MinGW 的 gcc。

    所以如果你使用 ActivePerl,你应该坚持使用 MSVC。如果你想使用 MinGW,请切换到 Strawberry Perl。

    也就是说,sys/types.h 是一个 POSIX 标头。如果您的模块需要它,那么无论您使用何种编译器,它都可能不支持 Windows。在这种情况下,您只能切换到模拟 POSIX 环境的 Cygwin。

    MSVC 应该带有sys/types.h。你可能没有正确设置它。你跑vcvars.bat了吗?

    如果您告诉我们您要安装哪个模块,您可能会得到更好的答案。

    【讨论】:

    • 我想要的模块是 Moose。但是我可以使用 ppm 使用预编译的二进制文件安装它。但是 Moose 绝对应该在 Windows 上得到支持。
    • 这很奇怪。驼鹿doesn't include sys/types.h.
    • 您是否通过运行 vcvars.bat 设置了 MSVC?
    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2021-06-30
    • 1970-01-01
    相关资源
    最近更新 更多