C++ 如何在centos的qgis中创建QgsVectorLayer(可能缺少插件包?)

C++ 如何在centos的qgis中创建QgsVectorLayer(可能缺少插件包?),c++,centos,gis,qgis,C++,Centos,Gis,Qgis,我按照这里的指示: 如果我跑步: QgsVectorLayer * vpoly = new QgsVectorLayer("Polygon", "pointbuffer", "memory"); QgsVectorDataProvider * provider = vpoly->dataProvider(); 然后提供程序是一个空指针 此外,如果我这样做: QString myPluginsDir = "/usr/lib64/qgis"; QgsProviderRegistry * p

我按照这里的指示:

如果我跑步:

QgsVectorLayer * vpoly = new QgsVectorLayer("Polygon", "pointbuffer", "memory");
QgsVectorDataProvider * provider = vpoly->dataProvider();
然后提供程序是一个空指针

此外,如果我这样做:

QString myPluginsDir = "/usr/lib64/qgis";
QgsProviderRegistry * preg = QgsProviderRegistry::instance(myPluginsDir);
QString pluglist=preg->pluginList();
printf("plugins: %s\n",pluglist.toStdString().c_str());
然后打印:

plugins: No data provider plugins are available. No vector layers can be loaded
此外,当我尝试加载具有以下内容的QgsVectorLayer时:

QgsVectorLayer * mypLayer = new QgsVectorLayer(myLayerPath, myLayerBaseName,    myProviderName);
if (mypLayer->isValid()){
    qDebug("Layer is valid");
} else {
    qDebug("Layer is NOT valid");
    return;
}
然后它说图层无效

这一切在Ubuntu中运行良好,但我无法在centos中运行。我想可能是缺少了所有的插件。我错过了什么


请帮忙。

我解决了这个问题

这与我发布的代码无关。他说,这将有助于其他人得到类似的错误

我的代码是从QGIS代码示例(2_basic_main_窗口)模板化的

我没有更改myPluginsDir变量。一定要更改它,因为默认情况下它是错误的