補足2:エラーについて


エラーとはプログラムになんらかの誤りがあることを言います。 cc コマンドの実行時に報告されるエラーには、 次の2つのタイプがあります。
% cc hello.c
ccom: Error: hello.c, line 5: newline in string or char constant
        printf("Hello!\n);
      --------------------^
ccom: Error: hello.c, line 6: syntax error
      }
      ^
%
これはソースプログラムに構文上の誤りがある場合に、 コンパイラによって報告されるエラーです。 この例では "Hello!\n という文字列の最後に " がありません。
% cc hello.c
ld:
Undefined:
print
%
これは構文上に誤りはないものの、 存在しない 関数を使用してるために、 リンカによって報告されているエラーです。 この例の print はどこにも定義されていません。

なお、printf は ライブラリ関数 として、あらかじめ用意されています。