【发布时间】:2014-04-20 18:41:12
【问题描述】:
我在 QT 中的多个定义遇到了很多麻烦。对于普通类,在我的整个库中,我只是将实现和头文件放在同一个 hpp 文件中。 我正在尝试转换 QObject 中的普通类,因此我可以将其用作工作线程来连接其他 QThread。在我将我的类转换为 QObject 之后,我遇到了许多多重定义问题。假设我的班级现在看起来像这样:
#ifndef MYCLASS_HPP
#define MYCLASS_HPP
#include "common.hpp"
#include <qtGui>
namespace Bial
{
class Image;
class Myclass : QObject{
Image *img;
signal:
void mySignal();
public:
void f();
}
#include "Image.hpp"
namespace Bial{
void Myclass::f(){
}
}
#endif //MYCLASS_HPP
MyClass 是 Platefinder 类的简化版。泰语太大了,放不下; 该问题出现在此类的 moc_platefinder.o 文件中以及我整个库的许多功能中。共 289 个多重定义问题:
mainwindow.o:/home/lellis/Dropbox/Lellis_Diet/bin/../diet/inc/../bial/File.hpp:1677:首先在这里定义
对不起,我的英语不好。
【问题讨论】: