ページ 11

LNK2005が出て困っています

Posted: 2010年1月16日(土) 01:45
by ti
いつもお世話になります
ソースが長くなってきたのでファイルを分けようと作業していたらLNK2005が出てしまいました
make town.cppに書いてあったmakecmdwindowという関数をmake cmd.cppに移動してふたつのソースファイルで宣言しているものを global.hにて宣言すれば直るかと思いましたが直りませんでした

自分ではどうすればいいのかわからないのでどうすればエラーが消えるのか教えてください
ソースファイルを上げておきます

開発環境はwinXP VS2005SEです
画像等はサイズが大きくなるので入れていません

よろしくお願いします 画像

Re:LNK2005が出て困っています

Posted: 2010年1月16日(土) 02:12
by Poco
1.Keyという変数の定義が2箇所あります。
 2重定義ならどちらかを消してください。
 変数名がかち合ったなら、どちらかの変数名を変更してください。

2.cmd_x、cmd_yという変数の定義がどこにもないです。
 どこかで定義してください。

Re:LNK2005が出て困っています

Posted: 2010年1月16日(土) 03:00
by Poco
ファイル分割に関するアドバイスです。

1.××.cppで定義しているグローバル変数/関数は
  ××.hでextern宣言するようにしてください。

2.××.hには必ずインクルードガードを施してください。

これを守るだけで、今回のようなエラーで困ることがなくなると
思います。

Re:LNK2005が出て困っています

Posted: 2010年1月23日(土) 00:39
by ti
ぽこさんありがとうございました
おかげでエラーはでなくなりました


インクルードガード
#pragma once
のほうで実装してみました

返信遅くなって申し訳ありませんでした