3

Perl MakeMaker が Makefile に挿入する CFLAGS のデフォルト値を変更するにはどうすればよいですか? この投稿に基づいて、私はこれを試しました:

export CFLAGS=...

それからcpanの中で、私はそれを確認しました

! print $ENV{CFLAGS}

しかし、Perl が構築されたものは何でも CFLAGS を使用します。

この投稿で提案されているように 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"],

ただし、これは、gcc が理解できない CFLAGS に既に存在しているものに値を追加するだけです (「-x03」や「-KPIC」など)。

4

1 に答える 1

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 の現在のリリースです。

これが他の誰かを助けることを願っています。

于 2012-01-06T08:47:59.723 に答える