• ベストアンサー

cc と gcc の違い

CCとGCCの違いについて教えてください。 どちらも、コンパイラという点では同じだと思うのですが、なぜ2つの方式ができたのでしょうか?? 少し話がずれますが、プログラムを汎用性も持たせるなら、どのようなオプションをつけるべきでしょうか? -ansi とか -Wall あたりをつける癖をつけておけば十分なのでしょうか?? G++とGCCの違いについても知っていれば教えて下さい 初歩的な質問ですがお願いします

noname#6448
noname#6448

質問者が選んだベストアンサー

  • ベストアンサー
  • akino4
  • ベストアンサー率18% (35/185)
回答No.1

GCCはそのコンパイラの固有名詞です。 http://gcc.gnu.org/ このサイトに解説があります。 ccは多くの場合そのシステムに標準で突いているコンパイラです。 そのOSのベンダが提供しているばあいもあれば、FreeBSDのように 中身はgccというものもあります。 g++とgccの違いはデフォルトでC++のファイルとして扱うか というところが違うだけだったはずです。(多分)

noname#6448
質問者

お礼

遅くなりまして申し訳ありません。 解凍拝見させてもらいました。 GCCが固有名詞で、 システムに最初から付いているコンパイラがCCなわけですね。 でも、中身が同じものもあるとは・・笑 ありがとうございました

その他の回答 (1)

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.2

CCはUNIX(SystemV系やBSD系)で昔から使われてきた”名前”です。C Compilerの略称ですね。GCCは、GNUの団体?が独自にコンパイラを作成してきました。GNU C Compiler。 要するに処理系の違いですね。 G++ は、 C++コンパイラで、GCCにオプションを付けると、内部で結局このG++が呼び出されます。今は、GCC/G++というように統合されてるんでしたっけ?(最近疎い・・) これは、別立てのコマンドにしたほうが都合が良いからなんでしょうね(推測)。G++だけ別立てで修正・配布とかできるし。

noname#6448
質問者

お礼

回答ありがとうございます。 基本的にどちらもほとんど同じだとは思っていたのですが、詳しく見てみるとおもしろいものですね。

関連するQ&A

  • gccでスタックオーバーフローのチェック

    OS:WindowsXP コンパイラ: MinGW gcc 3.3.3 gccで、スタックオーバーフローの検出を行いたいと思っています。 gcc -v --helpで見ると > -fstack-check Insert stack checking code into the program と書かれているので、そのように指定して、無限に自分を呼び続ける再帰のプログラムを走らせてみました。 gcc -fstack-check testS2.c  ですが、オプションを指定しない時と同じように突然何の前触れもなく終了してしまいます。  このオプションはスタックを使い切るかどうかをチェックするオプションではないのでしょうか。  よろしくお願いいたします。

  • gccでc++プログラムをコンパイルできない

    gccをインストールして使ってみたのですがc++のプログラムをコンパイルすることができません。 gcc test.ccとすると gcc: error trying to exec 'cc1plus': execvp: そのようなファイルやディレクトリはありません というエラーがでます。 ネットで調べたところg++かc++のようにコンパイルすればいいということでしたが、g++やc++とうつとcommand not found とでます。 gcc -versionで調べたところgccのバージョンは gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) です。 環境はfedora9です。fedora9をインストールしたときにgccがインストールされていなかったので yum install gcc でインストールしたのですが、これがまずかったのでしょうか? 分かっている方からするとトンチンカンな質問かもしれないのですが、どなたかよろしくお願いします。

  • AIX gcc コンパイルエラーにつきまして

    お世話になります。 Severもcもまったくわからない初心者なのですが質問させていただきます。 Make.plを実行してsoファイルを書き換えたいのですが、実行すると下記のようなエラーが出て最後までMakeが実行できません。 <ccを指定してコンパイル> 1506-507 (W) 使用できるライセンスはありません。プログラム提供者に連絡して、追加ユーザーを追加してください。 すぐにコンパイルが行われます。 <gccを指定してコンパイル> installation problem, cannot exec `cc1plus' Makeを実行したいのですがどうしたらよいでしょうか。 gccでコンパイル、他のコンパイラでの対応方法などありましたらご教授頂けると幸いです。 (ccの場合ライセンス自体が切れているっぽいのでできれば避けたいと考えています) 漠然とした質問で申し訳ないのですがよろしくお願いいたします。 OS -> AIX v4.3 cc -> CforAIX v.6 gcc -> powerpc-ibm-aix4.3.2.0 v 2.95.3

  • Cコンパイラ(gcc)について

    はじめまして。 C言語のコンパイラについてお尋ねしても宜しいでしょうか。 以下のファイルが存在します。 ・test.c(C言語のソースファイル) ・test.exe(上記ソースをコンパイルしたもの。Windows環境で現在稼動してます) test.cの中身を一部変更し、コンパイルする必要があるのですが、 (恥ずかしながら、コンパイルした人間はもう居ないので) 何のコンパイラを使ったか、判りません。 コンパイルするときに使用したであろうコマンドがあります。 gcc test.c -WALL -03 -o test.exe 察するに、gccというコンパイラを使用したと思い MiniGW (http://yanchde.gozaru.jp/mingw/wingw_start.html) を使用してコンパイルをしてみました。 コンパイルは通るのですが、出来上がるexeファイルのサイズが 非常に小さいです。 (オリジナルのtest.exeは500KB以上ありますが、今回コンパイルで出来たものは40kbほどです) この場合、、オリジナルのtest.exeと今回コンパイルしたexeは 異なる挙動をする可能性はありますでしょうか。。 初歩的な質問で恐縮ですが、どうかご教授頂けると、幸いです。

  • gccのコマンド行オプションについて

    現在仕事で、HP-UX11iからLinuxにC言語プログラムを移行する作業を行っています。 そこで、質問なのですが、HP-UXでは"+unum"というコマンド行オプションがありました。 以下がccのマニュアルに記載されている説明です。 ------------------------------------------------------------------------------- ポインタは固有に境界整列していないデータにアクセスできる。 このオプションを使用することにより、コンパイラが間接参照されたデータにアクセスする方法 が変更できる。 また、このオプションを使用すると、生成されたコードの効率が低下することがある。 numについては次のように指定可能。  1:シングルバイトの境界整列を想定する。一連のシングルバイトのロードと保管によって 間接参照が実行される。  2:一連の2バイトのロードと保管によって間接参照が実行される。  4:一連の4バイトのロードと保管によって間接参照が実行される。 ------------------------------------------------------------------------------- この様に、アラインメントの設定だと思うのですが、"gcc"のオプションで同じ性能を持つものってあるのでしょうか? ネットなどで調べても出てこないので、もしご存知でしたら、ご教授ください。 OSの環境、gccのバージョンは以下の通りです。 OS:Red Hat Enterprise Linux AS release 4 (Nahant Update 5) gcc:gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8) わかりにくい質問だとは思いますが、よろしくお願い致します。

  • Cygwinに付属しているg++コマンドについて

    こんにちは。 Cygwinに付属しているC++コンパイルコマンドのg++について、いくつか質問させて下さい。 ・g++はC++だけでなく、Cのソースファイルもコンパイルできるので、Cのプログラムを開発するときは、gccは必要なく、g++だけでよいと思うのですが、どうしてgccが存在するのでしょうか? g++だけで十分ですよね? ・bashなどのコマンドライン上で g++ -print-libgcc-file-name と入力すると、コンパイラのコンパニオンライブラリ名を表示されるようなのですが、 コンパイラライブラリって何なのでしょうか? ちなみに自分の環境では、 /bin/../lib/gcc/i686-pc-cygwin/4.3.4/libgcc.a と表示されました。 ・-timeオプションを付けてg++でCソースファイルをビルドすると、以下のようになりました。 $ g++ -time "test.c" # cc1plus 0.03 0.01 # as 0.00 0.01 # collect2 0.00 0.08 1つめの時間と、2つめの時間は、それぞれ何を意味するのでしょうか? ・g++で使えるコマンドラインオプションとgccで使えるコマンドラインオプションは、 一緒のような気がするのですが、g++でしか使えないコマンドラインオプションってありますか? 以上です。 よろしくお願い致します。

  • gccの最適化オプションで挙動がおかしくなる

    コンパイラの最適化オプション -Osをつけると、下記のソースの終了コードが255になってしまいます。 最適化を行わない時や最適化を-O1にしたときは、0を返します。 本来は0が返ると思うのですが、なにかコードの書き方に何か問題ありますでしょうか? 環境は、 gcc 4.2、Mac Xcode 3.1.4上でテストしています。 また、ソースの文字コードの種類はSJISにしています。 const unsigned char gStr[3]="\x82\xAC"; int main(int ac, char **av) {  const unsigned char cc=0x82;  if(gStr[0]==cc)   return 0;  else   return 0xff; }

  • ANSI Cと学ぶのに適した本

    こんにちは。 ANSI Cを学ばなければならなくなったのですが ANSI Cが標準規格であるということ以外、 どういうものなのかということがわかりません。 プログラムの書き方が異なるのでしょうか。 それともエディター・コンパイラーによって異なるのでしょうか。 もう一点。 ANSICを学ぶ上で解説付の問題集の購入を検討しているのですが オススメの物があれば紹介して頂ければ幸いです。 初歩的な質問で申し訳ないですが、宜しくお願いします。

  • LinaxのCコンパイラ gcc の内部構造を教えて下さい

    今、コンパイラの仕組みについて勉強しています。 gccの仕組みについていろいろ調べているのですが なかなか資料が見当たりません。そこで是非これ に関して情報をお持ちのかたは御提供下さい。ど のような情報でも構いませんができれば次の情報 についてをお願いします。 1)gcc の構文解析の仕組み 2)最適化オプション -O2 を用いた時と通常のコンパイル時との構文解析の違い 3)ターゲットプロセッサ(CPU)に依存した構文解析の動作

  • GCCで暗黙の型変換の警告を出したい

    情報が失われてしまうような代入について警告を出したいのですが、 どういったオプションを用いればよいでしょうか? コンパイラはGCCの3.x系か4.x系でお願いします。 以下のようなソースで型変換に関する警告がほしいんです。 --- test.c --- #include <stdio.h> int main(void) {   int a = 66000;   short b;   b = a; // <- 暗黙の型変換   printf("%d\n", b);   return 0; } 実行結果 $ ./test 464 以下のオプションを試しましたが、上記のソースでは 何の警告も出ませんでした。 -W -Wall -Wconversion -Wimplicit ご存知の方いらっしゃいましたら、どうかお助け下さい。

専門家に質問してみよう