On Sun, 14 Nov 2021 at 16:42, Barry Scott <ba...@barrys-emacs.org> wrote: > > Sorry iPad sent the message before it was complete... > > > On 14 Nov 2021, at 10:38, Marco Sulla <marco.sulla.pyt...@gmail.com> wrote: > > > > Okay, now the problem seems to be another: I get the same "unresolved > > external link" errors, but only for internal functions. > > > > This seems quite normal. The public .lib does not expose the internals > > of Python. > > The strange fact is: why can I compile it on Linux and MacOS? Their > > external libraries expose the internal functions? > > Windows is not Linux is not macOS, > The toolchain on each OS has its own strengths, weaknesses and quirks. > > On Windows DLLs only allow access to the symbols that are explicitly listed > to be access.
Where are those symbols listed? > On macOS .dynlib and Unix .so its being extern that does this. And extern is the default. I understand now. > Maybe you could copy the code that you want and add it to your code? > Change any conflicting symbols of course. It's quite hard. I have to compile dictobject.c, which needs a lot of internal functions. And I suppose that every internal function may require 1 or more other internal functions. I have other two other solutions: * compile a whole python DLL with the symbols I need and link against it. I have to put this DLL in my code, which is ugly. * drop the support of the C Extension for Windows users and make for them the slow, pure py version only. Since my interest in Windows now is near to zero, I think I'll opt for the third for now. -- https://mail.python.org/mailman/listinfo/python-list