Actors or processes can be divided into two groups, according to the types of libraries they use.
Relocatable actors and processes
Upon actor start-up, the runtime linker loads the actor and performs the necessary relocations. A relocatable actor or process uses only static libraries.
Dynamic actors/processes
Upon actor start-up, the runtime linker loads the actor or process and performs the necessary relocations. It also loads and links the actor dependencies (the required dynamic libraries).
When you build a process or actor other than an embedded actor, you must specify one of the following macros in your Imakefile:
Relocatable processes/actors:
UserActorTarget
SupActorTarget
CXXUserTarget
CXXSupTarget
Dynamic processes/actors:
DynamicUserTarget
DynamicSupTarget
DynamicCXXUserTarget
DynamicCXXSupTarget
Shared processes/actors:
SharedUserTarget
SharedSupTarget
SharedCXXUserTarget
SharedCXXSupTarget
Each of these rules implicitly calls the libc.a or libc.so libraries. Therefore, when creating the Imakefile for a process or actor, there is no need to think about the libc.a or libc.so libraries because this is taken care of when you select the Imakefile rule. The C++ library is automatically included by specifying CXX in the relevant Imakefile rule.