如何让Perl MakeMaker更改它插入Makefile的CFLAGS的默认值?基于this post,我尝试了这个:
export CFLAGS=...
然后在cpan里面,我用
确认了! print $ENV{CFLAGS}
但它仍然使用Perl构建的CFLAGS。
我按照this post的建议查看了lib / perl /.../ Config.pm,但似乎没有设置CFLAGS。
我有一个相关的问题得到了回答:How to tell CPAN about path to make and cc
我在CPAN / Config.pm
中取得了一些进展'makepl_arg' => q[ CCFLAGS="-D_REENTRANT -O2 -m32 -I/opt/csw/bdb48/include -I/opt/csw/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -m32 -DVERSION=\"1.616\" -DXS_VERSION=\"1.616\" -fPIC -I/opt/csw/lib/perl/5.10.1/CORE"],
但是这只会将值附加到CFLAGS中已经存在的内容中,gcc不理解(例如“-x03”和“-KPIC”)。
答案 0 :(得分:0)
我已成功修改/opt/csw/lib/perl/5.10.1/Config_heavy.pl,以便MakeMaker可以生成可在OpenCSW下的solaris系统上运行的Makefile。
遇到类似问题的其他人可以在此处下载:https://gist.github.com/1569718
我还将这个发布回opencsw.org的维护者,以便他们有希望更新Perl的OpenCSW版本。我在帖子中指出,正确的方法是使用属于OpenCSW发行版的工具重建Perl,因为我相信当构建任何给定的Perl发行版时,此文件会由其他脚本自动生成(尽管我没有验证它是如何构建的。这个修补过的文件只是权宜之计,所以我可以完成我的工作,这是在截止日期之前。
我非常希望通过修改CPAN / Config.pm中的设置来实现我的目标。这适用于设置gcc和gmake的正确路径,但不能将命令行标志更改为gcc,因为CPAN会将这些标志附加到先前设置的参数字符串中。 gcc在遇到这些标志后会退出,其中一些是不兼容的(例如“-xO3”和“-KPIC”)。
为了记录,CSWperl 5.10.1,REV = 2011.01.15是我从OpenCSW安装的CSW的Perl当前版本。
希望这可以帮助别人。