如何告诉cpan(ActiveState)使用MinGW编译器

时间:2014-03-08 13:04:10

标签: perl compilation mingw cpan

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

如何告诉cpan使用MinGW?我找不到一个commoand-line选项。我可以使用vs-compiler解决其他问题吗?我在哪里放sys / types.h?如何将cpan中的include命令传递给编译器?

1 个答案:

答案 0 :(得分:3)

如果您尝试使用与构建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

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