CPAN无法编译C,如何配置CCFLAGS?

时间:2012-08-23 21:26:55

标签: perl freebsd cpan

我有一个新的FreeBSD 9.0安装,无法通过CPAN安装需要C的模块。它似乎是在没有cc的情况下调用-I/usr/local/include。我已经尝试通过使用INC="-I/usr/local/include"启动CPAN来覆盖它 - 虽然这解决了某些模块的问题,但它会打破其他模块,因为它似乎会覆盖makefile中设置的任何默认值。

我有另外一个盒子上有相同的设置(稍微安装,但仍然是FreeBSD 9.0),旧盒子上的perl -V显示ccflags包含-I/usr/local/include ,而它不在新盒子上。

我猜这就是为什么CPAN在没有它的情况下调用cc

问题是,我该如何配置?

2 个答案:

答案 0 :(得分:3)

CPAN模块使用的设置来自Config模块,它是核心Perl的一部分。它记录了编译Perl时使用的编译选项和设置。

无论出于何种原因,在您的新FreeBSD 9.0安装上编译Perl的人决定不包含-I/usr/local/include

正如您已经发现的那样,在Config模块中进行战斗是很难的。总的来说,最简单的是不打它。如果您希望Perl使用/usr/local/include,那么编译Perl以便这样做。您可能也想指定-l/usr/local/lib

您应该检查两个类似系统上的Perl版本是否相同。

答案 1 :(得分:1)

如果有效,最好的办法是将其添加到

返回的文件中的ccflags条目中
perl -E'require "Config_heavy.pl"; say $INC{"Config_heavy.pl"};'

否则,肯定有办法向ExtUtis::MakeMakerModule::Build安装程序指定此项。如果是,您可以使用cpano conf makepl_arg设置此o conf mbuildpl_arg。 (别忘了提交!)