-1

我在 Qt 中构建了一个包,它使用外部 gdal 库来查询光栅文件。我想将光栅与我的应用程序捆绑在一起,并希望在 qrc 资源文件中做到这一点。

问题是 gdal 想要一个文件名:-

const char *pzFileName = nullptr;
GDALAllRegister();
.
.
pzFileName = "/opt/mapping-data/SRTM/my_dem.tif";
testDataSet =  (GDALDataset *) GDALOpen(pzFileName,GA_ReadOnly);

有没有办法可以将此文件与我的 Qt 应用程序捆绑在一起,以便在每个平台上都知道文件名?因为 gdal 不知道“qrc/...”类型的 url。

4

1 回答 1

1

每次在您的应用程序启动时,我都会将资源复制到一个临时文件中。GDAL 似乎严重依赖文件和文件名。你可能会使用这样的东西:

QFile f(":/resources/file.txt");
QTemporaryFile::createNativeFile(f); // Returns a pointer to a temporary file
于 2020-05-05T10:53:01.537 回答