GCC4.4.3をコンパイルして/ usr/local/binにインストールしましたが、MacPorts 1.8.2を介してポートをインストールすると、MacPortsが/usr/bin/gcc-4.2を使用していることが詳細に出力されます。
gccをチェックしています.../usr/bin/gcc-4.2
MacPortsに自分のGCC4.4.3を見つけさせるにはどうすればよいですか?これが私の既存のパスです:
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Mac OS X 10.6.2 SnowLeopardを実行しています。
最初の答え:しないでください!私の経験では、GCC4.4.3はSnowLeopardでは正しく機能しません。長さがゼロの文字列で問題が発生します。
2番目の答え:/ usr/binのシンボリックリンクを編集して、4.4のものを参照します。これを行うために私が書いたスクリプトは次のとおりです。
rm /usr/bin/c++
ln -s /usr/bin/c++-${1} /usr/bin/c++
rm /usr/bin/cc
ln -s /usr/bin/cc-${1} /usr/bin/cc
rm /usr/bin/cpp
ln -s /usr/bin/cpp-${1} /usr/bin/cpp
rm /usr/bin/g++
ln -s /usr/bin/g++-${1} /usr/bin/g++
rm /usr/bin/gcc
ln -s /usr/bin/gcc-${1} /usr/bin/gcc
rm /usr/bin/gcov
ln -s /usr/bin/gcov-${1} /usr/bin/gcov
私はそれをchgCverと呼んだので、コンパイラを4.4に変更するには、chgCver 4.4
と入力します。もちろん、これを実行する前に、たとえば、c ++-4.4が正しい場所(おそらく/opt/local/bin/gcc-mp-4.4
)を指していることも確認する必要があります。私の最初と3番目の答えを無視する傾向がありました。
3番目の答え:しないでください! (最初の回答を参照してください。)
MacPortsは、プラットフォーム用に高度なパッチが適用されているため、可能な限りApple提供のコンパイラを使用しています。たとえば、FSF gccでは不可能な-Archフラグを指定することで、複数のアーキテクチャ用にビルドできます。
/ usr/bin/ccでシンボリックリンクを変更した場合でも、MacPortsはAppleバージョンでのみ理解されるフラグを使用しようとします。これにより、 MacPortsを使用して何でもコンパイルします。
Apple提供のコンパイラを使用するのが最善の方法であるとMacPorts開発者を信頼してください。
それに応じて、Portfileのconfigure.compiler変数を設定します。
configure.compiler macports-gcc-4.3
または、コマンドにconfigure.compiler = macports-gcc-4.3を追加します。
cf. このwikiページ 。