'Miniupnpc on Windows

Does anyone know how to link against miniupnpc (https://github.com/miniupnp/miniupnp/tree/master/miniupnpc) on Windows 10? I am using bazel 5.0. I am using msys2 and the mingw-gcc compiler. I am linking against the static form using -DMINIUPNP_STATICLIB. I compiled it by typing make install. I also tried mingw32make.bat but the fails with a different error. I get the following error when linking.

c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(miniupnpc.o):miniupnpc.c:(.text+0x496): undefined reference to `if_indextoname'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x180): undefined reference to `gai_strerror'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x188): undefined reference to `__getreent'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x1da): undefined reference to `__errno'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x1ed): undefined reference to `__errno'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x3b4): undefined reference to `__errno'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x3c3): undefined reference to `__errno'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(connecthostport.o):connecthostport.c:(.text+0x3d1): undefined reference to `__errno'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(minissdpc.o):minissdpc.c:(.text+0xc24): undefined reference to `ioctl'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(minissdpc.o):minissdpc.c:(.text+0xd00): undefined reference to `gai_strerror'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(minissdpc.o):minissdpc.c:(.text+0xd08): undefined reference to `__getreent'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(minissdpc.o):minissdpc.c:(.text+0x14f6): undefined reference to `if_nametoindex'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(minissdpc.o):minissdpc.c:(.text+0x151d): undefined reference to `__getreent'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(miniwget.o):miniwget.c:(.text+0x414): undefined reference to `__locale_ctype_ptr'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(miniwget.o):miniwget.c:(.text+0x84c): undefined reference to `gai_strerror'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(miniwget.o):miniwget.c:(.text+0x854): undefined reference to `__getreent'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(miniwget.o):miniwget.c:(.text+0xb51): undefined reference to `if_nametoindex'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(receivedata.o):receivedata.c:(.text+0x4b): undefined reference to `poll'
c:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: external/miniupnp/miniupnpc/libminiupnpc.a(receivedata.o):receivedata.c:(.text+0x5a): undefined reference to `__errno'



Solution 1:[1]

You need to run the following commands

cmake . 
make
./mingw32make.bat

Then you need to use the libminiupnc.dll.a

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Andrew Katson