> MESS was built as a single large .dll with two smaller exe (MESS and MESSUI) which > used extensively the .dll. the issue was that this made debugging with GDB basically > useless (symbols got basically lost in the .dll passage)
The other problem is that GCC on Windows has no way to control global symbol visibility, so any symbol that isn't local is exported. And the Windows dynamic loader gets *extremely* slow in the presence of a DLL with more than about 1500 exported symbols, even on very fast systems. M1 on Windows has this problem - it's why there's a long dramatic pause when you start either the CLI frontend or Bridge. I build Audio Overload in Visual Studio for precisely that reason, and AO boots up instantaneously in spite of having a very similar amount of code to M1.
|