The error is the following
libtool: link: (cd .libs/nbdkit-perl-plugin.lax/libutils.a && ar x
"/c/Users/yifangu/Documents/devel/nbdkit/plugins/perl/../../common/utils/.libs/libutils.a")
libtool: link: ar cru .libs/nbdkit-perl-plugin.a
.libs/nbdkit_perl_plugin_la-perl.o
 .libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-cleanup-nbdkit.o
.libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-cleanup.o
.libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-quote.o
.libs/nbdkit-perl-plugin.lax/libutils.a/libutils_la-utils.o
libtool: link: ranlib .libs/nbdkit-perl-plugin.a
libtool: link: rm -fr .libs/nbdkit-perl-plugin.lax
libtool: link: ( cd ".libs" && rm -f "nbdkit-perl-plugin.la"
&& cp -pR "../
nbdkit-perl-plugin.la" "nbdkit-perl-plugin.la" )
make[3]: Leaving directory
'/c/Users/yifangu/Documents/devel/nbdkit/plugins/perl'
Making all in python
make[3]: Entering directory
'/c/Users/yifangu/Documents/devel/nbdkit/plugins/python'
/bin/sh ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../..  -I../../include -I../../common/utils    -I/usr/include/python3.7m
 -g -O2 -MT nbdkit_python_plugin_la-python.lo -MD -MP -MF
.deps/nbdkit_python_plugin_la-python.Tpo -c -o
nbdkit_python_plugin_la-python.lo `test -f 'python.c' || echo
'./'`python.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include
-I../../common/utils -I/usr/include/python3.7m -g -O2 -MT
nbdkit_python_plugin_la-python.lo -MD -MP -MF
.deps/nbdkit_python_plugin_la-python.Tpo -c python.c  -DDLL_EXPORT -DPIC -o
.libs/nbdkit_python_plugin_la-python.o
python.c:228:1: error: external linkage required for symbol
‘create_nbdkit_module’ because of ‘dllexport’ attribute
  228 | create_nbdkit_module (void)
      | ^~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:638: nbdkit_python_plugin_la-python.lo] Error 1
make[3]: Leaving directory
'/c/Users/yifangu/Documents/devel/nbdkit/plugins/python'
make[2]: *** [Makefile:505: all-recursive] Error 1
make[2]: Leaving directory '/c/Users/yifangu/Documents/devel/nbdkit/plugins'
make[1]: *** [Makefile:696: all-recursive] Error 1
make[1]: Leaving directory '/c/Users/yifangu/Documents/devel/nbdkit'
make: *** [Makefile:562: all] Error 2
On Mon, Mar 23, 2020 at 8:49 AM Richard W.M. Jones <rjones(a)redhat.com>
wrote:
 On Mon, Mar 23, 2020 at 12:28:12PM +0000, Richard W.M. Jones wrote:
 > From: Yifan Gu <gyf304(a)gmail.com>
 >
 > The create_nbdkit_module function is intended to be exported, therefore
 > the static keyword is not needed and prevents building on MSYS2.
 > ---
 >  plugins/python/python.c | 2 +-
 >  1 file changed, 1 insertion(+), 1 deletion(-)
 >
 > diff --git a/plugins/python/python.c b/plugins/python/python.c
 > index a1a0438b..adc1aaa5 100644
 > --- a/plugins/python/python.c
 > +++ b/plugins/python/python.c
 > @@ -224,7 +224,7 @@ static struct PyModuleDef moduledef = {
 >    NULL
 >  };
 >
 > -static PyMODINIT_FUNC
 > +PyMODINIT_FUNC
 >  create_nbdkit_module (void)
 >  {
 >    PyObject *m;
 > --
 I don't believe this is correct.  We call
   PyImport_AppendInittab ("nbdkit", create_nbdkit_module);
 later on so the function shouldn't need to public.  What's the actual
 error when compiling this?
 Rich.
 --
 Richard Jones, Virtualization Group, Red Hat
 
http://people.redhat.com/~rjones
 Read my programming and virtualization blog: 
http://rwmj.wordpress.com
 Fedora Windows cross-compiler. Compile Windows programs, test, and
 build Windows installers. Over 100 libraries supported.
 
http://fedoraproject.org/wiki/MinGW