2009-10-20 91 views
6

構建Perl模塊時ExtUtils :: MakeMaker使用Config.pm中定義的標記(請參閱perldoc配置)獲取諸如ccflags和ldflags等值。如何在構建模塊時重寫perl的編譯標誌?

如何覆蓋這些值(短編輯Makefile.PL)?

perl Makefile.PL ldflags=<options> 

似乎沒有工作。

上下文: 我想在OS X 10.6上編譯Term :: Readline :: Gnu。 默認的OS X perl是一個通用的二進制文件,因此具有像-arch i386 -arch ppc等的ccflags。
另一方面,我的Gnu Readline(6.0)版本僅從源代碼中爲-arch i386編譯。因此,它不包含試圖使用-arch ppc鏈接到它的模塊的預期符號。

+0

嘗試在EUMM郵件列表中提問此問題:http://www.perlfoundation.org/perl5/index.cgi?extutils_makemaker – 2009-10-20 11:21:30

回答

2

一般來說,試圖覆蓋Config.pm中的設置是徒勞的。想要更改它們的更常見的原因是在一臺使用非GNU編譯器編譯Perl的機器上更改編譯器,但是您想使用GCC。這很難做到,用你選擇的編譯器重新編譯Perl,安裝所有的輔助模塊,然後使用構建你選擇的新模塊,而不是試圖與「系統」作鬥爭就簡單多了。

因此,您可以執行以下兩件事之一 - 使用與Perl相同的選項構建GNU Readline庫,或使用用於構建GNU Readline的選項構建Perl。如果你重視你的機器和你頭上的頭髮,不要試圖彎曲一個去接觸另一個,以免遇到另一個問題(請不要直接碰到困難的機器 - 這是你應該感到沮喪的軟件,而不是硬件; Mac的很好!)。

在這兩個選項中,重建GNU Readline可能更容易 - 它更小,附件更少。

0

文檔Hintsfile Support部分提供的信息可能是相關的,儘管我沒有嘗試過。