[ Index | Prev | Next ]

C/C++ 分科会 - 第零章

XCode

情報棟の端末はiMacですが、MacOSX用の開発環境としてXCodeという物が既に入っています。
XCodeを使うと、できあがるのはMacOSX用の実行ファイルではありますがGUIという見やすい操作でコンパイルやデバッグが出来ます。
CΔTさんがテキストを書いてくれました。

XCodeを使う利点としては、

というまぁそもそもコマンドを打つ手間の掛かるCUIと比較するのはおかしいのですが(笑)。
C分科会でもXCodeを使った説明もしていこうと思います。

ターミナルからのコンパイル

さて、今年度に情報棟のシステムが変更されるまでは情報棟のシステムでC言語をコンパイルする際にはgcc(GNU Compiler Collection)というツールが使われていました。
gccはLinuxなどいわゆるUNIX系OSでほぼ標準と言っていいほど使われているコンパイラです。実はC言語以外もコンパイルできるようです。(FORTRANとかJavaとか。)
さて、gccを使ってコンパイルする方法ですが…
まずはDockからターミナルを起動してください。Windowsでいうコマンドプロンプトみたいな窓が出ると思います。

ca01234$ _

ここにコマンドを打ち込んでコンパイルする訳ですが…
例えばコンパイルしたいと思っているソースがprog1.cでprog1と言うディレクトリの中にあったとします。

ca01234$ cd prog1
ca01234$ gcc prog1.c
ca01234$ _

さて、エラーがなければ何も表示されずにa.outとファイルが出来ているはずです。
これはgccのデフォルト(既定値)出力ファイルがa.outと決まっているためです。
でも、a.outだと使いづらかったりするかも知れないので出力ファイル名を指定してみましょう。

ca01234$ gcc prog1.c -o prog1
ca01234$ _

これでprogディレクトリの中にprogという実行ファイルが出来たはずです。

ca01234$ ./prog
hello, world!
ca01234$ _

※余談なのですが、なぜ ./ を付けるのかというのには理由があります。
 ./ が無いとターミナルはPATHという「ここにコマンドの実行ファイルが置いてあるよ」というディレクトリからコマンドを探して実行しようとします。
 なぜこんなことをするかというと、例えば ls というコマンドはディレクトリにあるファイルの一覧を出したりするコマンドですが、
 誰かがこっそりprogディレクトリに偽の ls コマンドを入れているとそちらが実行されてもしかすると困ったことになるかも知れません。(まぁ無いとは思いますが)
 なので、「私はこのコマンドをこのディレクトリで実行したいんだ」とはっきり知らせるために ./ という物が必要なのです。

ちなみにこんなソースでした(要らない

#include <stdio.h>


int main ()
{
  printf ("hello, world!\n");
  return 0;
}