1

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

我有另一个设置几乎相同的盒子(安装稍旧,但仍然是 FreeBSD 9.0),perl -V在旧盒子上显示ccflagscontains -I/usr/local/include,而在新盒子上没有。

我猜这就是为什么 CPAN 在cc没有它的情况下打电话的原因。

问题是,我该如何配置它?

4

2 回答 2

3

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

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

正如您已经发现的那样,与 Config 模块中的设置作斗争是一项艰巨的工作。总的来说,最简单的就是不打它。如果您希望 Perl 使用/usr/local/include,则编译 Perl 以便这样做。您可能还想指定-l/usr/local/lib

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

于 2012-08-23T21:32:43.153 回答
1

如果它有效,您最好的选择可能是将其添加到由ccflags返回的文件中的条目中

perl -E'require "Config_heavy.pl"; say $INC{"Config_heavy.pl"};'

否则,肯定有办法将其指定给ExtUtis::MakeMakerModule::Build安装程序。如果是这样,您可以cpan使用o conf makepl_argand进行设置o conf mbuildpl_arg。(别忘了提交!)

于 2012-08-23T21:35:07.960 回答