2012-10-05 216 views
0

请帮助建立我的项目,我放弃了第二个小时后。 这就是它的样子: Solution Explorer错误LNK 2005 Visual Studio 2008

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" 

the error

什么,我需要做的,让他开心,我尝试了很多变种,但无法弄清楚如何..? 感谢您的帮助。 该项目是在这里:http://www.filehosting.org/file/details/381812/Tetris.rar

+1

我猜你没有使用标头警卫? – chris

+1

真的吗? ** **下载**代码需要**电子邮件地址**。 – chris

+0

是的,但这不是我的文件主机) –

回答

2

如果你在第二个小时后放弃,这可能不是适合你的行业:-)有几次你会花费数天的时间试图解决一个问题,最后踢自己,因为回想起来这很简单。


无论如何,关于手头的问题。这几乎肯定是因为您的BrickClass头文件中有代码

通过在main.cpp(通过mainClass.h)和BrickClass.cpp中包含该头文件,每个目标文件都获得代码的独立副本。

然后,当您尝试将这些对象文件链接在一起时,链接器会发现有两个副本。

头文件通常应包含声明,extern int i;或函数原型,如int xyzzy (void);

定义,int i;和功能,如int xyzzy (void) {return 42;},应仅被放置在“常规”源文件。

+0

这可能不适合你的行业: - )它的4我。我可以在“如何编码”问题上花费几天的时间,但这种问题是*(&%^ *%& –

+0

很高兴看到你按照预期的方式采用了幽默,@Mickey,有时候我可能是一个不敏感的人clod :-) – paxdiablo

+0

定义如int i;和函数,如int xyzzy(void){return 42;},只能放在“常规”源文件中。\ n这是正确的答案)) –