我刚玩过 qjson 库,遇到“ undefined reference ”错误。这是代码:
#include <qjson/qobjecthelper.h>
#include <qjson/serializer.h>
class Person: public QObject {
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(Gender gender READ gender WRITE setGender)
Q_ENUMS(Gender)
public:
Person(QObject *parent = 0);
~Person();
QString name() const;
void setName(const QString &name);
enum Gender{Male, Female};
Gender gender() const;
void setGender(Gender gender);
private:
QString m_name;
Gender m_gender;
};
int main ()
{
Person person;
QJson::Serializer serializer;
person.setName("Nick");
person.setGender(Person::Male);
QVariantMap person_map = QJson::QObjectHelper::qobject2qvariant(&person);
QByteArray json = serializer.serialize(person_map);
return 0;
}
因此,编译器说 undefined reference to Person::Person
和 Person 类中的所有其他函数。为什么?
最佳答案
您只声明了类的方法。您还需要定义(即实现)它们。目前,编译器应该如何知道 Person
的构造函数应该做什么?
关于c++ - 对本地类的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717839/