Compiling
your own libgenerics based on
applications
An important point concerns the
metaclasses
libgenerics stores for the related dynamically linked to binaries. The
libgenerics metaclasses list references the whole declared metaclasses
in the libgenerics itself, in the core application binary and in the
core application potential modules. It is declared as a static variable
automatically populated without any initialization requirement. All
those metaclasses are accessible before the application main execution
point is accessed. Because all of the principle of the libgenerics
runtime analyse engine is performed on the
metaclasses facilities,
there must be only one metaclasses list defined in a whole application binary, including its potential dynamically linked modules.
So,
if the target application is developped to dynamically link some modules, it should be build as follow :
- the target application core binary must be build with the
-rdynamic GNU gcc option and linked to the libgenerics library,
- the target application modules must be build with the
-shared GNU gcc option without any explicit libgenerics direct link directive.
With those compilation directives, the unresolved
symbols of the target application modules will be linked into the
application segment itself and the libgenerics
metaclasses description centralization will be ensured.
A
libgenerics-1.2.pc file comes along with the generics headers, so you can use the
pkg-config utility to build your code on.