当前位置: 技术问答>linux和unix
关于类重复定义的问题。
来源: 互联网 发布时间:2015-04-05
本文导语: 本人自己定义了一个类SArray,并且在该类的头文件中使用了 “#ifndef _SARRAY_H_ #define _SARRAY_H_“ ...... ”#endif“ 可是不知道为什么在编译的时候还出现了”redefinition of SArray::SArray()“d等错误。请各位高手解答。谢谢!...
本人自己定义了一个类SArray,并且在该类的头文件中使用了
“#ifndef _SARRAY_H_
#define _SARRAY_H_“
......
”#endif“
可是不知道为什么在编译的时候还出现了”redefinition of SArray::SArray()“d等错误。请各位高手解答。谢谢!
“#ifndef _SARRAY_H_
#define _SARRAY_H_“
......
”#endif“
可是不知道为什么在编译的时候还出现了”redefinition of SArray::SArray()“d等错误。请各位高手解答。谢谢!
|
是不是你用了多个cpp文件,又不会用ld把它们连接成一个应用程序?
1、独立编译每个cpp文件,这样:gcc -c a.c,会生成a.o,b.o等等
2、ld -o urAppName a.o b.o -llibname
不要include cpp文件。
最好是学习makefile,用makefile来管理。
1、独立编译每个cpp文件,这样:gcc -c a.c,会生成a.o,b.o等等
2、ld -o urAppName a.o b.o -llibname
不要include cpp文件。
最好是学习makefile,用makefile来管理。
|
原因大概有:
1、头文件里有SArray::SArray()的inline实现,源文件里又写了一个。
2、源文件里多处定义。
如果解决不了,把代码贴上来吧。
1、头文件里有SArray::SArray()的inline实现,源文件里又写了一个。
2、源文件里多处定义。
如果解决不了,把代码贴上来吧。