VisualStudioのビルドでLNK4042が発生してしまう問題

VisualStudioのビルドで嵌ったことについてのメモです。

VS2013を使っていて、同じ名前のソースファイルが無いにもかかわらず以下のエラーが表示されてしまうことがあります。

 1>DebugSource.obj : warning LNK4042: オブジェクトの指定が重複しています。余分なものは無視されます。

これは、Source.cppをプロジェクトに追加した後にビルドし、その後Source.cppをSource.hにリネームし、更にSource.cppを追加してビルドしたときに起こりました。
どうやら、Source.cppからリネームされたSource.h自体をコンパイルしてSource.objファイルとして作成してしまっていたようです。
後から追加したSource.cppもコンパイルされてSource.objを生成するため、同じ名前のオブジェクトファイルが2つ生成されてしまうことになります。

この問題は、いったんSource.hとSource.cppをプロジェクトから削除し再登録することで解消されます。

同じエラーが発生して心当たりあると思ったら試してみると良いかもしれません。