library(sf) loads wrong version of GEOS · Issue #844 · r-spatial/sf (original) (raw)
I get the following error when building sf
master against GEOS 3.7.0:
unable to load shared object '/home/dan/R/x86_64-pc-linux-gnu-library/3.4/sf/libs/sf.so':
/home/dan/R/x86_64-pc-linux-gnu-library/3.4/sf/libs/sf.so: undefined symbol: GEOSFrechetDistanceDensify_r
I verified that the symbol is present in libgeos_c.so
:
nm -g /usr/local/lib/libgeos_c.so | grep Frechet
0000000000010210 T GEOSFrechetDistance
0000000000010230 T GEOSFrechetDistanceDensify
00000000000141e0 T GEOSFrechetDistanceDensify_r
0000000000014040 T GEOSFrechetDistance_r
The following command is used to link sf
:
g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o sf.so RcppExports.o bbox.o gdal.o gdal_geom.o gdal_read.o gdal_utils.o gdal_write.o geos.o hex.o proj.o raster2sf.o sfg.o signed_area.o stars.o wkb.o -lproj -L/usr/local/lib -lgdal -L/usr/local/lib -lgeos_c -L/usr/lib/R/lib -lR
which looks right to me.