C++ リンクについて
現在LINUX(Vine Linux)でC++の勉強をしています。
やさしいC++という本を読みながら勉強しているのですが、この本でいう「ファイルの分割」という部分でつまっています。
複数のファイルをコンパイルの時にどのようにリンクすればいいのか分かりません。
教本では
myfunc.h 関数プロトタイプ宣言
myfunc.cpp 作成した関数の定義
Sample5.cpp main関数の定義(プログラム本体)
とあり、それぞれを教本どおりに作成し、
g++ -o Sample5 Sample.cpp
でコンパイルしようとすると、
/tmp/ccUgMR4c.o(.text+0x42): In function `main':
: undefined reference to `max(int, int)'
というエラーが出ます。(maxは作成した関数です。)
maxが認識されてないみたいなので、この3つのファイルをつなぎ合わせる操作が必要だと思うのですが、どうすればよいのでしょう?
必要かわかりませんが、gcc -vと入力すると
/usr/lib/gcc-lib/i386-vine-linux/3.3.6/specs から spec を読み込み中
コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i386-vine-linux
スレッドモデル: posix
gcc バージョン 3.3.6 release (Vine Linux 3.3.6-0vl7)
となります。(リンクの方法を調べている時によく出てきていたので記載しました。)
自分なりに様々なサイトを調べたのですが、見つからなかったので質問させていただきます。
本来はもっと理解した上でプログラミングを勉強すべきなのでしょうが、明日までにこの本を読み終えないといけません。
よろしくお願いします。
補足
ありがとうございます! なんかタイトルがおかしくてすみません^^;