Hi Sebastiaan,

here is the tail of the failing basemap build output:

gcc -pthread -shared build/temp.linux-x86_64-2.7/src/_geoslib.o
-L/usr/lib -L/usr/lib64 -L/home/megies/local/lib -Wl,-R/usr/lib
-Wl,-R/usr/lib64 -lgeos_c -lgeos -lpython2.7 -o

/usr/bin/ld: cannot find -lgeos

collect2: error: ld returned 1 exit status

/usr/bin/ld: cannot find -lgeos

collect2: error: ld returned 1 exit status

error: Command "gcc -pthread -shared
build/temp.linux-x86_64-2.7/src/_geoslib.o -L/usr/lib -L/usr/lib64
-L/home/megies/local/lib -Wl,-R/usr/lib -Wl,-R/usr/lib64 -lgeos_c -lgeos
-lpython2.7 -o build/lib.linux-x86_64-2.7/_geoslib.so" failed with exit
status 1

in the basemap install routine (in Python) the offending piece reads:


If I follow your advice and simply remove 'geos' from the libraries
section, the linking/compiling works without the manually added link to
"/usr/lib/libgeos.so". I will notify the developer/maintainer of
matplotlib basemap of these circumstances/findings.

So, I am not an expert on linking and if you consider linking against
libgeos C++ library bad practice I guess you can close this bug report.

Thanks for the quick feedback.


On 03/10/2014 12:13 PM, Sebastiaan Couwenberg wrote:
> Hi Tobias,
>> I was trying to compile matplotlib basemap
>> (http://sourceforge.net/projects/matplotlib/files/matplotlib-
>> toolkits/basemap-1.0.7/) which depends on libgeos.
>> The compilation fails because matplotlib basemap tries to link against
>> "libgeos.so" but in "/usr/lib" only "libgeos-3.3.3-so" is present.
>> When manually creating a link ("sudo ln -s /usr/lib/libgeos-3.3.3.so
>> /usr/lib/libgeos.so"), the compilation/linking works without problems.
>> I think during installation this link should be created.
> Creating library symlinks manuall is seldomly a good idea.
> libgeos-3.3.3.so is the C++ library, linking against this is discouraged.
> Applications should like to the C API (libgeos_c.so) which is considered
> stable.
> In de documentation for mathplotlib basemaps they document linking to the
> C API:
> "
> If you already have it on your system, just set the environment variable
> GEOS_DIR to point to the location of libgeos_c and geos_c.h (if libgeos_c
> is in /usr/local/lib and geos_c.h is in /usr/local/include, set GEOS_DIR
> to /usr/local).
> "
> See: https://github.com/matplotlib/basemap
> Please try the above procedure to build mathplotlibs basemap with the GEOS
> C API. You may need to install libgeos-c1 if it's not already installed.
> Kind Regards,
> Bas

Dipl.-Geophys. Tobias Megies

Geophysikalisches Observatorium
Ludwigshöhe 8
82256 Fürstenfeldbruck

Department für Geo- und Umweltwissenschaften
Sektion Geophysik
Theresienstrasse 41/IV
80333 München

Tel: +49 (0) 89 2180-73981
     +49 (0) 89 2180-4326
Mail: tobias.meg...@geophysik.uni-muenchen.de

Pkg-grass-devel mailing list

Reply via email to