エラーとはプログラムになんらかの誤りがあることを言います。 CC コマンドの実行時に報告されるエラーには、 次の2つのタイプがあります。
% CC hello.cc[Enter] "hello.cc", line 5: error(3105): missing closing quote cout << "hello!\n; ^ "hello.cc", line 6: error(3158): expected a ";" } ^ 2 errors detected in the compilation of "hello.cc". |
これはソースプログラムに構文上の誤りがある場合に、 コンパイラによって報告されるエラーです。 この例では "Hello!\n という文字列の最後に " がありません (missing closing quote)。
% CC sample.cc ld: ERROR 33: Unresolved text symbol "print(char*)" -- 1st referenced by hello.o. ld: INFO 60: Output file removed because of error. |
これは構文上に誤りはないものの、 存在しない 関数を使用してるために、 リンカによって報告されているエラーです。 この例の print はどこにも定義されていません。
なお、printf などは、 ライブラリ関数 として、あらかじめ用意されているので、 自分で定義していなくてもエラーにはなりません。