On 2017-07-01 21:11, Damien Gibson wrote:

As well I only intended to use shared libraries not static ones...

Well, you can use shared libraries in two different way, dynamic linking or dynamic loading.

Dynamic linking is when you declare your external symbols as usual and you link with the shared library at build time.

Dynamic loading is when you declared your external symbols as function pointer and you don't link with the shared libraries at build time. You then use "dlopen" and the family of functions on Posix and "LoadLibrary" on Windows to load the shared library at runtime.

When using dynamic linking on Posix you link directly with the shared library. When using dynamic linking on Windows you don't link directly with the shared library but instead link with an import library, which is basically a static library (as far as I understand). I would assume that this import library has the same problem as any other static library.

When using dynamic loading you don't have to worry about these different formats at all.

You can read more about static linking vs dynamic linking vs dynamic loading and about the problems with the different formats in the dlang blog [1] and here [2].

[1] http://dlang.org/blog/2017/06/26/project-highlight-derelict/
[2] http://derelictorg.github.io/bindings/

--
/Jacob Carlborg

Reply via email to