0

私のプロジェクトを構築するのを手伝ってください、私は2時間後にあきらめました。それは次のようになります。 ソリューション エクスプローラー

BrickClass.h

 - #include"header.h"

header.h

 - #pragma once
 - #include windows.h
 - #include windowsX.h
 - #include tchar.h
 - #include commctrl.h
 - #include "matrixClass.h"
 - #include "resource.h"

mainClass.h

 - #include "header.h"
 - #include "brickClass.h"

matrixClass.h

 - #include cstdlib
 - #include cstdio
 - #include math.h

brickClass.cpp

 - #include "brickClass.h"

main.cpp

 - #include "mainClass.h"

mianClass.cpp

 - #include "mainClass.h"

エラー

彼を幸せにするために私は何をする必要がありますか?私は多くのバリエーションを試しましたが、方法がわかりません..? あなたの助けに感謝。プロジェクトはこちら: http://www.filehosting.org/file/details/381812/Tetris.rar

4

1 に答える 1

2

2 時間後にあきらめるなら、この業界はおそらくあなたに適した業界ではありません :-) 問題を解決するために何日も費やし、最後に自分を蹴散らしてしまうこともあるでしょう。振り返ってみるととてもシンプル。


それはともかく、当面の問題に移ります。ほとんどの場合、ヘッダー ファイルにコードが含まれているためです。BrickClass

そのヘッダー ファイルをmain.cpp(経由でmainClass.h) との両方に含めることによりBrickClass.cpp、各オブジェクト ファイルはコードの独立したコピーを取得します。

次に、これらのオブジェクト ファイルを一緒にリンクしようとすると、リンカーは 2 つのコピーがあることを検出します。

ヘッダー ファイルには、通常、 のような宣言や、 などの関数プロトタイプを含める必要がありextern int i;ますint xyzzy (void);

のような定義やなどint i;の関数int xyzzy (void) {return 42;}は、「通常の」ソース ファイルにのみ配置する必要があります。

于 2012-10-06T00:01:00.957 に答える