尝试编译QGIS 3.10 WITH_QUICK选项以启用获取QML

问题描述

我花了几天尝试启用WITH_QUICK选项来编译QGIS 3.10。 运行CMAKE时,qmlplugindump.exe是唯一无法自动找到的var,因此我手动将其放置(其他所有都可以正常工作)

在VS2015中,当我尝试编译解决方案(在RelWithDebug x64中)时,一切都很好,预计会出现2个错误qgis_quick和qgis_quick_plugin。

在编译器输出中,我遇到有关QMetaObject的LNK2001 moc错误

139>     Creating library C:/OSGeo4W64/QGIS/ms-windows/osgeo4w/build-qgis-test-x86_64/src/quickgui/RelWithDebInfo/qgis_quick.lib and object C:/OSGeo4W64/QGIS/ms-windows/osgeo4w/build-qgis-test-x86_64/src/quickgui/RelWithDebInfo/qgis_quick.exp
139>qgsquickattributeformmodelbase.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsField::staticMetaObject" (?staticMetaObject@QgsField@@2UQMetaObject@@B)
139>qgsquickattributemodel.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsField::staticMetaObject" (?staticMetaObject@QgsField@@2UQMetaObject@@B)
139>qgsquickidentifykit.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsvectorLayer::staticMetaObject" (?staticMetaObject@QgsvectorLayer@@2UQMetaObject@@B)
139>qgsquickmapcanvasmap.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsMapLayer::staticMetaObject" (?staticMetaObject@QgsMapLayer@@2UQMetaObject@@B)
139>moc_qgsquickmapsettings.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsMapLayer::staticMetaObject" (?staticMetaObject@QgsMapLayer@@2UQMetaObject@@B)
139>qgsquickmapcanvasmap.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsMapRendererJob::staticMetaObject" (?staticMetaObject@QgsMapRendererJob@@2UQMetaObject@@B)
139>qgsquickmapsettings.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsProject::staticMetaObject" (?staticMetaObject@QgsProject@@2UQMetaObject@@B)
139>qgsquickmessagelogmodel.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsMessageLog::staticMetaObject" (?staticMetaObject@QgsMessageLog@@2UQMetaObject@@B)
139>moc_qgsquickfeaturelayerpair.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsFeature::staticMetaObject" (?staticMetaObject@QgsFeature@@2UQMetaObject@@B)
139>moc_qgsquickutils.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsFeature::staticMetaObject" (?staticMetaObject@QgsFeature@@2UQMetaObject@@B)
139>moc_qgsquickcoordinatetransformer.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsCoordinateReferenceSystem::staticMetaObject" (?staticMetaObject@QgsCoordinateReferenceSystem@@2UQMetaObject@@B)
139>moc_qgsquickmapsettings.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsCoordinateReferenceSystem::staticMetaObject" (?staticMetaObject@QgsCoordinateReferenceSystem@@2UQMetaObject@@B)
139>moc_qgsquickutils.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsCoordinateReferenceSystem::staticMetaObject" (?staticMetaObject@QgsCoordinateReferenceSystem@@2UQMetaObject@@B)
139>moc_qgsquickscalebarkit.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsUnitTypes::staticMetaObject" (?staticMetaObject@QgsUnitTypes@@2UQMetaObject@@B)
139>moc_qgsquickutils.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const QgsPointXY::staticMetaObject" (?staticMetaObject@QgsPointXY@@2UQMetaObject@@B)
139>C:\OSGeo4W64\QGIS\ms-windows\osgeo4w\build-qgis-test-x86_64\output\bin\RelWithDebInfo\qgis_quick.dll : Fatal error LNK1120: 10 unresolved externals

有人可以帮助我吗? 非常感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)