mr4th-dynamic-linking/GUIDE.txt

27 lines
1.3 KiB
Plaintext

The main goal of this investigation is to organize shared data and code across
multiple binary files. This is especially important for something like a base
layer that will be used in a program that supports hot-reloading or plugins.
Each isolated example in this repository explores a way to set up the base
layer, plugin, and main program.
The examples:
*_linking - Concrete examples for each operating system I have investigated
showing how to setup and use various types of dynamic linking. In
these the "base" layer goes through load-time linking, the
"plugin" layer goes through run-time linking, and the "main" layer
acts as the executable that must bind it all together.
clang_linking - Build scripts that build the *_linking examples with clang.
Clang does not require changes to the source in either case.
The build lines require some modification on Windows.
On Linux clang can be directly swapped out for gcc.
xlist - My prefered solution to the problem posed in the investigation which
relies only on run-time linking. It uses an xlist to manage the
maintenance burden of run-time linking, and a basic outline of the
abstracted form of each layer.