The compiler needs a dynamic version of the library when compiling modules making use of them. However it is possible to link the final application with static versions of them. To build static versions of libecere, use either the the 'static' or the 'vanilla' configuration that you will find in ecere.epj (vanilla should already be pre-compiled/installed in the lib/ folder as libecereVanilla.a). Vanilla is kept smaller by excluding 3D graphics, a number of bitmap formats and display drivers. You can of course customize a configuration with exactly what you would like to include. Likewise, libecereCOM has a 'static' configuration.
To link your application statically, it will need to import the library as such:
import static "ecere"
Often we use a pre-processor definition to have the option to link statically or not:
import ECERE_STATIC "ecere"
Where ECERE_STATIC is either nothing or 'static'.
And then the static version of the library you wish to use must be specified in the Project Settings/Linker Options. Additinally, all libecere dependencies must be linked with directly in your application, and resources added to the 'libecere' library must then be included within your project's resources under an 'ecere' folder.
You can take a look at the eC/staticLink samples for reference:https://github.com/ecere/ecere-sdk/tree ... staticLink
However it would seem this one is only configured to build with Windows and would need Linux library dependencies to be added in the Project Settings/Linker options under Static config/Linux platform.