web-dev-qa-db-ja.com

OSXYosemiteでccをclangではなくgccに設定します

Mac OSX Yosemiteでccが呼び出されたときにclangの代わりにgccを使用するようにしようとしていますが、何をしても、一緒にプレイすることを拒否します。私はすでにbash_profile/bashrcを変更し、シンボリックリンクを再リンクしようとしましたが、役に立ちませんでした。「cc」を呼び出すたびに、実行されるのはまだclangです。代わりに強制的にgccにしようとしています(いいえ、gccを呼び出すだけではオプションではありません)。

私は以前に同様の質問をしました( Yosemiteでgccをデフォルトのcコンパイラにする/ clangを無効にする )。

9
Hendrik

OSXもXcodeも実際のGCCには付属していません。コンパイラが「gcc」と呼ばれることを前提としたスクリプトとの互換性のために、その名前の実行可能ファイルがありますが、それらはすべてClangの最前線です。シンボリックリンク、環境変数の設定、またはエイリアスの設定を行っても、これらの実行可能ファイルで実際のGCCを実行することはできません。

GCCが必要な場合は、インストールする必要があります。これは、MacPorts(私がよく知っているもの)などのパッケージマネージャーの1つを使用して行うことができます。 Homebrewも使えると思います。

/ usr/bin内の何も変更しないでください。すでに行っている場合は、可能であれば、変更したものを復元する必要があります。

行儀の良いパッケージマネージャーもそのディレクトリを変更しません。/opt/local/bin、/ usr/local/binなどの別のディレクトリにインストールする必要があります。その場合は、PATHを変更して、これらのディレクトリを/ usr/binより前に配置する必要があります。

11
Ken Thomases

あなたはこれをすべきではありません。多くのツールは、インストールバイナリに依存して、何をすべきかを示しています。もう1つのオプションは、環境変数CCgccに設定し、$CC ...ではなくcc ...を使用してコンパイルを呼び出すことです。この環境変数は、configure(autotools)またはcmakeを介してパッケージをビルドするときにも取得されます。

これは、MacPortsバージョンのgcc(はるかに最新のgcc-4.9.2など)との互換性のあるアプローチでもあり、次のように設定できます:Sudo port select --set gcc mp-gcc49

5
Brett Hale