msys2 / mingw missing dynamic linker library
Asked Answered
C

1

6

I am attempting to build SpatiaLite in Msys2. The build goes well until it attempts to compile the examples. It throws an error because the linker cannot find the dynamic linker (dl) library. Is this something that I should expect msys2/mingw to support? Am I missing a package?

I build spatialite using

./configure && make

Here is the compiler/linker output

Making all in examples
make[2]: Entering directory '/home/myuser/libspatialite-4.3.0a/examples'
gcc -DHAVE_CONFIG_H -I. -I..    -I./../src/headers  -g -O2 -MT demo1.o -MD -MP -MF .deps/demo1.Tpo -c -o demo1.o demo1.c
mv -f .deps/demo1.Tpo .deps/demo1.Po
/bin/sh ../libtool  --tag=CC   --mode=link gcc -I./../src/headers  -g -O2 -L../src -lspatialite -lm   -o demo1.exe demo1.o -L/mingw32/lib -lxml2 -lz -llzma -liconv -lws2_32 -lfreexl -liconv -lproj -lz -lsqlite3  -L/mingw32/lib -lgeos_c
libtool: link: gcc -I./../src/headers -g -O2 -o .libs/demo1.exe demo1.o  -L../src /home/myuser/libspatialite-4.3.0a/src/.libs/libspatialite.a -L/mingw32/lib -lpthread -ldl -lxml2 -llzma -lws2_32 -lfreexl -liconv -lproj -lz -lsqlite3 -lgeos_c
C:/msys32/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -ldl
collect2.exe: error: ld returned 1 exit status
make[2]: *** [Makefile:372: demo1.exe] Error 1
make[2]: Leaving directory '/home/myuser/libspatialite-4.3.0a/examples'
make[1]: *** [Makefile:473: all-recursive] Error 1
make[1]: Leaving directory '/home/myuser/libspatialite-4.3.0a'
make: *** [Makefile:380: all] Error 2
Cheryllches answered 6/7, 2018 at 21:3 Comment(0)
C
10

msys2 needed the package mingw-w64-dlfcn which provides libdl.a and libdl.dll.a

More details here

Cheryllches answered 6/7, 2018 at 23:18 Comment(1)
Full name is mingw-w64-x86_64-dlfcnFreya

© 2022 - 2024 — McMap. All rights reserved.