Qt 文件名到捆绑资源

Qt filename to bundled resource

我在 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.

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

QFile f(":/resources/file.txt");
QTemporaryFile::createNativeFile(f); // Returns a pointer to a temporary file