2015-01-06 9 views
7

ccが呼び出されたときにclangの代わりにgccを使用するようにMacOSXのYosemiteを取得しようとしていましたが、何をしても再生を拒否しています。私は既にbash_profile/bashrcを変更しようとしましたが、シンボリックリンクを再リンクしていましたが、役に立たなかったのです。 "cc"を呼び出すたびに、まだ実行中のclangです。代わりにgccに強制しようとしています(いいえ、gccを呼び出すことはオプションではありません)。OSXでclangの代わりにcccを設定するYosemite

私は以前に同様の質問をしました(Make gcc default c compiler on Yosemite/disable clang)。

+1

私はいつも人々がgccをclangで使いたいと言っているときに興味があります。理想的な理由や他の目標を念頭に置いていますか? –

+1

いいえ、gccを想定していて、clangで動かすことができない非常に秘密のソフトウェアを実行するだけです。 – Hendrik

+3

XCode 6では、 'gcc'は本物の' gcc'ではなく 'clang'へのリンクです。 GCCのカスタムビルドをいくつかの形や形で入手してから、リンクを変更する必要があります(また、XCodeをアップグレードしてコマンドラインツールを再インストールすると変更される危険性があります)。 –

答えて

6

これは行わないでください。多くのツールがインストールバイナリに依存して、必要なものを指しています。別のオプションは、環境変数CCgccに設定し、cc ...ではなく$CC ...でコンパイルを呼び出します。この環境変数はconfigure(autotools)またはcmakeでパッケージをビルドするときにも選択されます。

これもで設定することができます(より多くの日付のgcc-4.9.2までのような)のgcc MacPortsのバージョンと互換性のあるアプローチ:sudo port select --set gcc mp-gcc49

+0

環境変数を設定しようとしましたが動作しませんでした。これは、ccやgccを手動で呼び出す場合や、実際に何が呼び出されているかを実際に制御しているケースではないので、ccにgccを実行させようとしているのです。 – Hendrik

+0

@Hendrik - エイリアスcc = "gcc"(bash)やエイリアスcc 'gcc'([t] csh)などのエイリアスを設定しようとするといいでしょう。しかし、これもまた問題となる(http://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-aliases)。 –

+0

ソフトウェアは少なくともPATHを尊重していますか?あなたはgccだけを知っている環境を与えようとすることができます – sapi

9

OS XもXcodeのどちらが本当の付属していますGCC。コンパイラが "gcc"と呼ばれるスクリプトとの互換性のために、その名前で実行可能ファイルを持っていますが、それらはすべてClangの前衛です。シンボリックリンク、環境変数の設定、エイリアスの設定は実行できません。

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

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

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

関連する問題