Hello,
After I had installed the last version from Github, I tried to build the blog example according to the Tutorial and here is the output I got:
Undefined symbols for architecture x86_64:
"QArrayData::deallocate(QArrayData*, unsigned long, unsigned long)", referenced from: QTypedArrayData<unsigned short>::deallocate(QArrayData*) in blog.o QTypedArrayData<char>::deallocate(QArrayData*) in blog.o QTypedArrayData<unsigned short>::deallocate(QArrayData*) in moc_blogobject.o "QArrayData::shared_null", referenced from: QArrayData::sharedNull() in blog.o "QJsonArray::append(QJsonValue const&)", referenced from: Blog::getAllJson() in blog.o "QJsonArray::QJsonArray()", referenced from: Blog::getAllJson() in blog.o "QJsonArray::~QJsonArray()", referenced from: Blog::getAllJson() in blog.o "QJsonValue::QJsonValue(QJsonObject const&)", referenced from: Blog::getAllJson() in blog.o "QJsonValue::~QJsonValue()", referenced from: Blog::getAllJson() in blog.o "QJsonObject::fromVariantMap(QMap<QString, QVariant> const&)", referenced from: Blog::getAllJson() in blog.o "QJsonObject::~QJsonObject()", referenced from: Blog::getAllJson() in blog.o "QMapDataBase::freeData(QMapDataBase*)", referenced from: QMapData<QString, QVariant>::destroy() in blog.o "QMapDataBase::freeTree(QMapNodeBase*, int)", referenced from: QMapData<QString, QVariant>::destroy() in blog.o "QAbstractItemModel::moveColumns(QModelIndex const&, int, int, QModelIndex const&, int)", referenced from: vtable for TSqlORMapper<BlogObject> in blog.o "QAbstractItemModel::moveRows(QModelIndex const&, int, int, QModelIndex const&, int)", referenced from: vtable for TSqlORMapper<BlogObject> in blog.o "QObject::connectNotify(QMetaMethod const&)", referenced from: vtable for TSqlORMapper<BlogObject> in blog.o vtable for BlogObject in moc_blogobject.o "QObject::disconnectNotify(QMetaMethod const&)", referenced from: vtable for TSqlORMapper<BlogObject> in blog.o vtable for BlogObject in moc_blogobject.o "QString::fromUtf8_helper(char const*, int)", referenced from: QString::fromUtf8(char const*, int) in blog.o "QString::append(QLatin1String)", referenced from: TSqlORMapper<BlogObject>::selectStatement() const in blog.o TSqlORMapper<BlogObject>::orderBy() const in blog.o "QListData::dispose(QListData::Data*)", referenced from: QList<QVariant>::QList(QList<QVariant> const&)::Cleanup::~Cleanup() in blog.o QListData::dispose() in blog.o QList<QVariant>::dealloc(QListData::Data*) in blog.o QList<Blog>::dealloc(QListData::Data*) in blog.o "QMetaType::registerNormalizedType(QByteArray const&, void (*)(void*), void* (*)(void const*), void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*)", referenced from: int qRegisterNormalizedMetaType<TCriteria>(QByteArray const&, TCriteria*, QtPrivate::MetaTypeDefinedHelper<TCriteria, (QMetaTypeId2<TCriteria>::Defined) && (!(QMetaTypeId2<TCriteria>::IsBuiltIn))>::DefinedType) in blog.o int qRegisterNormalizedMetaType<TCriteriaData>(QByteArray const&, TCriteriaData*, QtPrivate::MetaTypeDefinedHelper<TCriteriaData, (QMetaTypeId2<TCriteriaData>::Defined) && (!(QMetaTypeId2<TCriteriaData>::IsBuiltIn))>::DefinedType) in blog.o "QMetaType::registerNormalizedTypedef(QByteArray const&, int)", referenced from: int qRegisterNormalizedMetaType<TCriteria>(QByteArray const&, TCriteria*, QtPrivate::MetaTypeDefinedHelper<TCriteria, (QMetaTypeId2<TCriteria>::Defined) && (!(QMetaTypeId2<TCriteria>::IsBuiltIn))>::DefinedType) in blog.o int qRegisterNormalizedMetaType<TCriteriaData>(QByteArray const&, TCriteriaData*, QtPrivate::MetaTypeDefinedHelper<TCriteriaData, (QMetaTypeId2<TCriteriaData>::Defined) && (!(QMetaTypeId2<TCriteriaData>::IsBuiltIn))>::DefinedType) in blog.o "QObjectData::dynamicMetaObject() const", referenced from: BlogObject::metaObject() const in moc_blogobject.o "QAbstractItemModel::canDropMimeData(QMimeData const*, Qt::DropAction, int, int, QModelIndex const&) const", referenced from: vtable for TSqlORMapper<BlogObject> in blog.o "QAbstractItemModel::sibling(int, int, QModelIndex const&) const", referenced from: vtable for TSqlORMapper<BlogObject> in blog.o "QString::arg(QString const&, int, QChar) const", referenced from: TCriteriaConverter<BlogObject>::criteriaToString(QVariant const&, QSqlDatabase const&) in blog.o TCriteriaConverter<BlogObject>::criteriaToString(QString const&, TSql::ComparisonOperator, TSql::ComparisonOperator, QVariant const&, QSqlDatabase const&) in blog.o "QVariant::canConvert(int) const", referenced from: bool QVariant::canConvert<TCriteria>() const in blog.o bool QVariant::canConvert<TCriteriaData>() const in blog.o "QVariant::convert(int, void*) const", referenced from: QtPrivate::QVariantValueHelper<TCriteriaData>::metaType(QVariant const&) in blog.o QtPrivate::QVariantValueHelper<TCriteria>::metaType(QVariant const&) in blog.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [../lib/libmodel.1.0.0.dylib] Error 1 make: *** [sub-models-make_first] Error 2
There are obviously some issues about class that needs a virtual member, but there also some issues I could not fix as for example I changed the header for json modules and still got errors.
I would also recommend to add
macx { QMAKE_LFLAGS += -F/Library/Frameworks/ LIBS += -framework treefrog }
the appbase.pri in order for make to find the framework on OS X.
Best,
Ben Le Cam.