> > So my PostGIS is compiled with GEOS 3.9.0, but it should work with > > GEOS 3.11. > > You presumably have swapped out the geos implementation? How? > [Regina Obe] I test PostGIS / PostgreSQL with a PostgreSQL launch script that sets the path of all the key dependencies. So I have a compiled (lots of other old geos) , GEOS 3.9.0, GEOS 3.10.0, GEOS 3.10.1, GEOS 3.11 (main) all just different in bin path by the version.
So when I want to compare differences I compile PostGIS with the lowest version I want to compare And then switch the paths in my PG launch script and then start up PostgreSQL again. Ignore the windowishness of this script, pretend you see export and $ signs instead -- START SCRIPT -- SET OS_BUILD=64 SET GCC_TYPE=gcc81 SET MINGW=C:\ming%OS_BUILD%%GCC_TYPE%\mingw%OS_BUILD% SET PROJECTS=C:\ming%OS_BUILD%%GCC_TYPE%\projects SET GDAL_VER=3.3.3 #I change this SET GEOS_VER=3.10.1 SET PGDATA=%~dp0\data SET PGDATABASE=postgres SET PGUSER=postgres SET PGPORT=5451 : lots of other dependencies cut out to keep this shorter @SET PATH=%PROJECTS%\zlib\rel-zlib-%ZLIB_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS% \CGAL\rel-cgal-%CGAL_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\cgal\rel-sfcga l-%SFCGAL_VER%w%OS_BUILD%%GCC_TYPE%\bin;%MINGW%\bin;%~dp0bin;%PROJECTS%\gdal \rel-%GDAL_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\geos\rel-%GEOS_VER%w%OS_ BUILD%%GCC_TYPE%\bin;%PROJECTS%\rel-libiconv-%ICONV_VER%w%OS_BUILD%%GCC_TYPE %\bin;%PROJECTS%\proj\rel-%PROJ_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\lib xml\rel-libxml2-%LIBXML_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\curl\rel-cu rl-%CURL_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\expat\rel-expat-%EXPAT_VER %w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\freexl\rel-freexl-%FREEXL_VER%w%OS_BUI LD%%GCC_TYPE%\bin;%PROJECTS%\v8\%V8_VER%;%PROJECTS%\ssl\rel-openssl-%OPENSSL _VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\sqlite\rel-sqlite%SQLite_VER%w%OS_ BUILD%%GCC_TYPE%\bin;%PROJECTS%\protobuf\rel-%PROTOBUF_VER%w%OS_BUILD%%GCC_T YPE%\bin;%PROJECTS%\pcre\rel-%PCRE_VER%w%OS_BUILD%%GCC_TYPE%\bin;%PROJECTS%\ lz4\rel-lz4-%LZ4_VER%w%OS_BUILD%%GCC_TYPE%\bin;%~dp0\bin "%~dp0\bin\initdb" -E UTF8 -U postgres -A trust "%~dp0\bin\pg_ctl" -D "%~dp0/data" -l logfile_%PGPORT% start ECHO "Click enter to stop" pause "%~dp0\bin\pg_ctl" -D "%~dp0/data" stop -m fast -- END SCRIPT -- > > ERROR: could not load library > > "C:/ming64gcc81/projects/postgresql/rel/pg14w64gcc81/lib/postgis-3.2.dll": > > The specified module could not be found. > > Well, your real problem is that you are using windows! > [Regina Obe] Is your other name Sandro. I might not be able to tell you apart anymore :) > That error doesn't show what couldn't be found, and I'd suggest the equivalent > of objdump and ldd. > > But seriously, that doesn't sound right. > > One issue is that the c library has a (on POSIX) DT_NEEDED for the C++, and > sometimes (libtool?) when building a program that links with libgeos_c, the > libraries that libgeos_c depend on are also added at DT_NEEDED to the > program. [Regina Obe] You solved the problem :) Ldd Shows this: ldd /projects/postgresql/rel/pg14w64gcc81/lib/postgis-3.2.dll : ucrtbase.dll => /c/Windows/System32/ucrtbase.dll (0x7ff966af0000) libgeos_c.dll => not found : and I see the newer GEOS from 3.10.1 on have the file called libgeos_c-1.dll copying libgeos_c-1.dll back to the original name of libgeos_c.dll fixed the issue. I also notice I am back to having this ugly libgeos-3.10.1.dll that I was so happy to get rid of when I had switched my geos building from autotools to CMake years ago. In GEOS 3.10.0 the c++ one was called: libgeos_c-1.dll Why is this ugly creature back? If it was to congeal the libtool / CMake worlds I guess I can learn to live with this ugliness. Thanks, Regina _______________________________________________ geos-devel mailing list geos-devel@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/geos-devel