質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Q&A

解決済

1回答

5641閲覧

macのCellarにある、gccとgcc49はどう言った違いがありますか?

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

0グッド

0クリップ

投稿2016/06/19 17:03

題名の通りなのですが、el capitanにアップデート後、いきなりgccコマンドを使って、c言語をコンパイルできなくなったので、よく分からない状態に陥っていました。

今は使えるのですが、少々重い気がします。

そこで、gccにある5.3.0のやつとgcc49の場所にあるものとは何が違うのでしょう。

ちなみに/.profileの中でalias = gcc=gcc-5.2とかいうよくわからない状態に
なっていたのを4.9になおしたら、使えるようになったわけですが、どう言った違いがあるのかよく理解しておきたいと思い書いてみました。

それと、実質5.3だけでなく、5.2や5.1があったのですが、競合しているのかと思い、削除してしまったんですが大丈夫ですかね?わら

わかる方いましたらよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

/usr/local/Cellar配下にインストールされるHomebrewでいれたGCCのことでいいですね?
※ 以下、gccはコマンド、GCCはGNU Compiler Collectionというアプリケーションの意味で区別しても用います。

XcodeとHomebrewと組み合わせるといくつかの"gcc"が用意されます。

  1. gcc XcodeのCommand Line Toolsのgccです。GCCのコマンドでは無く、Clangのコマンドになります。通常はこちらを使用することをおすすめします。
  2. gcc-4.x xには3から9までの何れかの数字です。GCC 4.x系のgccです。brew install homebrew/versions/gcc4xで入れると使えるようになります。
  3. gcc-5 GCC 5系のgccです。brew install homebrew/versions/gcc5で入れると場合に使えるようになります。最新は5.3.0です。
  4. gcc-6 GCC 6系のgccです。brew install homebrew/versions/gcc6で入れると場合に使えるようになります。
  5. 2から4のいずれか最新 brew install gccで入れた場合、最新の安定版GCCが入ります。以前はgcc-4xでしたが、少し前までgcc-5であり、最近gcc-6になりました。

上の1から4は全て共存可能です。最後の5は最新版になると言うだけになります。

通常、Macをサポートしているほとんどのアプリケーションでは、Mac向けにコンパイルされるときはClangのgccを想定しています。**aliasを用いて、gccを他のGCCのgccに変更すると、想定しない不具合を発生する可能性があるため、おすすめしません。**ただ、Macを全く想定していないアプリケーション(元々はLinuxだけしかサポートしていないなど)の場合は、Clangのgccではうまく動作しない場合があります。そのときに使用するのが、Homebrewで入れることができる各GCCです。

どのバージョンのGCCを使うべきかはそれぞれの事情で違います。新しいバージョンの方が機能も多く、より最適化されていますが、リリース直後は安定性が劣る可能性があります。また、C11やC++14などがデフォルトで有効/無効になるのかがバージョンによって異なります。

GCCのgccを用いるときは、gcc-6コマンドそのものを使うか、CC=gcc-6 ./configureと行った形で、CCを指定してconfigureするか、Makefile内のCCをgcc-6に変えるようにすることをおすすめします。ailasで変更することは最後の手段です。

なお、/usr/local/Cellar配下は手動で削除せずに、brew cleanupで古いバージョンを削除し、brew uninstall パッケージ名で不要なパッケージを削除するようにしてください。Homebrewが管理しているパッケージ一覧と不整合を起こす可能性があります。もし、おかしくなったら、brew doctorでおかしい点を確認してください。OSアップグレード直後は不整合もおきやすく、また、古いバージョンだと不具合が起きる場合があるため、brew updateでHomebrewを最新にし、brew doctorで確認後、brew upgradeで全てのパッケージを更新することをおすすめします。

投稿2016/06/19 22:03

raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/19 23:58

初心者でもわかりやすく読むことができました、ありがとうございます! brewにcleanupなんてあったんですね。初めて知りました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問