I've tried adding EXPORT/IMPORT declarations in sqVirtualMachine.h, but it's not such a good idea - many function prototypes are duplicated in various win32/vm/*.c without the EXPORT, so it breaks in many places - most external plugins won't need the IMPORT, because they call functions through the VirtualMachine structure rather than attempt to directly link them.
I've sketched a lightweight solution in branch https://github.com/OpenSmalltalk/opensmalltalk-vm/tree/fix_include_order. The branch can build the VM for the 3 major OSes (linux, macos, windows). It remains to know if the solution is compatible with TERF. Before I emit a pull request, Eliot, your comments are welcome.