5

コマンドライン ツールがインストールされた Lion 10.7.3 があります。私は C++11 で実験したかったので、ここに記載されているように自作を使用して GCC 4.7 をインストールしました

/usr/bin/g++ を Homebrew によってインストールされるものにアップグレードするにはどうすればよいですか? それをシンボリックリンクするのと同じくらい簡単ですか?もう一度確認して確認したいだけです。ありがとう!

4

1 に答える 1

3

まず、本当に g++ 4.7 が必要ですか? C++11 の実装状況ページからわかるように、clang の最近のバージョンは C++11 のほとんどもサポートしています。もちろん、g++ が処理し、clang が処理しないものがまだありますが、clang がサポートし、g++ が処理しないものもまだあります。さらに重要なことに、Apple の最新バージョンの clangが既に構成されており、デフォルトのコンパイラとしてすぐに使用できます。さらに、4.2 以降の g++ は、たとえば などの Mac 拡張機能をサポートしていません。つまり、-archそれを使用して多くのサードパーティ ソフトウェアを構築することはできません (ほとんどの構成スクリプトは、Mac を使用している場合、コンパイラは Mac 拡張機能をサポートしています)。


しかし、g++ 4.7 が必要な場合は、それを行うことができます。/usr/bin/g++別のバージョンに置き換えようとするだけではありません。/usr/bin(または)内の何かを Apple 以外のものに置き換えないでください。/Systemただし、いくつかの非常にまれなケース (何について話しているかを知っている人から強い安心感を得た場合) を除きます。

より良い方法は、別のコンパイラを並行してインストールすることです。Homebrew に好みの方法でインストールさせ (/usr/local/Cellar/gcc/4.7 などのプレフィックスにインストールし、適切なものすべてを /usr/local/bin などにシンボリック リンクします)、そのように使用します。

コードをコンパイルするときはg++/usr/local/bin/g++、 、またはg++-4.7.

それをするのにうんざりしている場合は/usr/local/bin、PATHの上位に置く/usr/binか、シェルエイリアスを作成するか、環境変数CXXに貼り付けて$CXX代わりに書いてg++ください。

GUI IDE を使用している場合は、パスをどこかに設定することで、コンパイラを使用するように構成できるはずです。(Apple でテスト済みのコンパイラでのみ動作するように構成できる Xcode を使用している場合を除きます。)


独自のコードを試すために必要なのはこれだけです。このコンパイラを使用してサードパーティのアプリケーションをコンパイルする場合は、もう少し複雑になる可能性があります。各ソース ファイルを実際にコンパイルして、結果をリンクすることはあまりありません。あなたはただそうするだけconfigure && makeで、彼らにあなたのために面倒な作業をさせてください。

幸いなことに、ほとんどのパッケージは、特にCXXデフォルトの C++ コンパイラとCCデフォルトの C コンパイラを指定する場合に、標準の環境変数を尊重します。(それが私が上記の名前を提案した理由ですCXX。)

繰り返しになりますが、g++ 4.7 は Mac 拡張機能をサポートしていないため、autoconf ベースの configure スクリプトをデバッグする準備ができていない場合は、コンパイラがコードを生成できないと不平を言っています-arch x86_64。 Mac などでは、これを行わないでください。

于 2013-04-25T01:57:39.697 に答える