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