【急】,求解释!!Qt中出现multiple definition of...错误
错误详见下面的连接地址:http://www.qtcn.org/bbs/read-htm-tid-46499-page-e.html#a
在头文件中定义结构体之后编译连接出现上述错误
struct Tag_Trailer
{
char Header[3];
char Title[30];
char Artist[30];
char Album[4];
char Size[4];
};
Tag_Trailer Mp3Trailer;
去掉Tag_Trailer Mp3Trailer行,错误消失,请问这是什么错误呢?
谢谢!! --------------------编程问答-------------------- Tag_Trailer mp3Trailer;
换个名字,小写开头,以避免重定义。 --------------------编程问答-------------------- Tag_Trailer Mp3Trailer;
改成:struct Tag_Trailer Mp3Trailer;
这个是c的正规语法。要么你就别struct了,改成:
class Tag_Trailer
{
public:
char Header[3];
char Title[30];
char Artist[30];
char Album[4];
char Size[4];
};
Tag_Trailer Mp3Trailer;
--------------------编程问答-------------------- 结合1,2楼修改后,错误依旧一样,费解... --------------------编程问答-------------------- class Tag_Trailer
{
public:
char Header[3];
char Title[30];
char Artist[30];
char Album[4];
char Size[4];
};
Tag_Trailer Mp3Trailer;
这个会有错?我怎么没有错?
你要是非要struct还可以这么写:
typedef struct Tag_Trailer
{
char Header[3];
char Title[30];
char Artist[30];
char Album[4];
char Size[4];
} MyTag_Trailer;
MyTag_Trailer Mp3Trailer;
在没有上下文的情况下,上边的代码我的都正常便已通过 --------------------编程问答-------------------- C++ 的基本原则:除类定义,const常量定义,模板定义外,不要放置任何定义,只放声明!!
题外:可以猜出,你的头文件应该被多个编译单元(.cpp)文件包含了 --------------------编程问答-------------------- 重定义了
Tag_Trailer Mp3Trailer;这个不要放在头文件里面,还是老老实实放在cpp中把
补充:移动开发 , Qt