[gdal-dev] Custom raster driver startup issues

Even Rouault even.rouault at spatialys.com
Thu Dec 14 13:19:42 PST 2023


- If you build a plugin against GDAL X.Y, you must run it against GDAL 
X.Y, and not an earlier or later version since the C++ ABI changes 
between feature versions (you should however be able to use a plugin, 
built against X.Y.some_patch_version, against X.Y.another_path_version)

- The error you get about specified procedure not found generally 
indicate that your plugin links to some library that is not found in the 
PATH / LD_LIBRARY_PATH. dlopen() / LoadLibrary() aren't super verbose 
about the reasons. You might have to use ldd or DependencyWalker to 
figure out the runtime linking issue.

- If you use GDALRegister_X(), then your DLL must be called exactly 
"gdal_X.dll" / "gdal_X.so"  . Or use "GDALRegisterMe()" as the 
registration function.  GDALRegister_X or GDALRegisterMe must have C 
export style (extern "C").

- Before trying GDALOpen(), check with "gdalinfo --format X" that your 
driver is loaded.

Le 14/12/2023 à 21:52, Meyer, Jesse R. (GSFC-618.0)[SCIENCE SYSTEMS AND 
APPLICATIONS INC] via gdal-dev a écrit :
>
> Hi,
>
> After carefully following the advice here on the lists and the Raster 
> driver tutorial GDAL isn’t loading the driver.
>
> I am relying on the AutoLoadDrivers function.
>
> When I GDALAllRegister(), followed by a 
> GDALOpen(“path/to/custom/raster.ext”, RA_ReadOnly);, GDAL states that 
> the file is not recognized as a supported file format.  The 
> application was built against the exact version of GDAL used to link 
> the custom driver code.  GDAL 3.7.2
>
> I tried running an older GDAL version (3.6.3) in a python 
> environment.  When I `from osgeo import gdal`, there are two errors 
> that are printed.
>
>  1. Can’t load requested DLL – then it printed the full path and file
>     name of the driver .dll, so it can find it!
>  2. The specified procedure could not be found
>
> These look like python specific error messages to me, and probably 
> stem from a gdal version mismatch. I’m assuming #2 is emitted in a 
> trivial sense because the .dll could not be opened.  Curiously the 
> error message was printed twice.  I did not expect this to work but my 
> hope was to see a more detailed error message.
>
> I have exported the GDALRegister_X() function, in accordance with the 
> documentation.  The driver code compiles cleanly and follows almost 
> verbatim with the tutorial.
>
> How should I approach diagnosing the problem?
>
> Best,
>
> Jesse
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20231214/1916195b/attachment.htm>


More information about the gdal-dev mailing list