<div dir="ltr"><div>Hey all,</div><div><br></div><div>We are working on our Windows deployment of live555 and, to comply with LGPL, we would like to build as a DLL without maintaining a downstream fork</div><div><br></div><div>The structure of Live555 is not setup for Windows DLLs at all, as there is a cyclic dep between BasicUsageEnvironment and UsageEnvironment. </div><div><br></div><div>BasicUsageEnvironment has a straightforward dep on most of UsgaeEnvironment, so that one is not much of a mystery. </div><div><br></div><div>UsageEnvironment has a dependency of BasicUsageEnvironment because it calls Iterator::create in HashTable::RemoveNext</div><div><br></div><div>This means it cannot be built as a shared library on Windows because Windows does not support cyclic dependenciecs between dll's.</div><div><br></div><div>Would you be open to patches that do some minor refactoring to not have cyclic dependencies between the libraries?</div><div><br></div><div>Additionally, would you accept linkage specifiers when built as a shared library? This has benefits on Linux as well as it lets you specify exactly which symbols are exported instead of just exporting absolutely everything, which makes symbol conflicts more likely.</div><div><br></div><div>Thanks,</div><div>Russell</div></div>