c++ - 对本地类的 undefined reference

标签 c++ qt qjson

我刚玩过 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::PersonPerson 类中的所有其他函数。为什么?

最佳答案

您只声明了类的方法。您还需要定义(即实现)它们。目前,编译器应该如何知道 Person 的构造函数应该做什么?

关于c++ - 对本地类的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3717839/

相关文章:

c++ - 如何防止新碰撞绕过旧碰撞? (2D)

c++ - sfml 中 C++ 中的对象数组

c++ - 诺基亚 Qt 中的进度条?

c++ - Qt Release构建无法打开DLL

qt - 来自 QAbstractListmodel headerData() 的 QML Listview header

c++ - Qt 5.0 Json编码

c++ - 动态分配内存

c++ - 二维容器的通用打印

c++ - 将 Vector 转换为 QJsonArray 的最快方法?

c++ - 将 JSON 文本文件转换回 QJsonArray