Originally Posted by
grumpy
Often developers of applications have options (eg IDE settings, command line options) to select whether the C runtime library is linked statically (against the link library) or not into any application.
Thanks grumpy,
This is mean that if you have a runtime library with .so extension, you can use this runtime library for a static link ?
As i known, the way to call a function in the static library and in the shared library is different.
============
This is define about runtime library from compiler guide that i am using (IAR for ARM compiler)
Introduction to the runtime environment:
The runtime environment is the environment in which your application executes. The runtime environment depends on the target hardware, the software environment, and the application code.
RUNTIME ENVIRONMENT FUNCTIONALITY
The runtime environment supports Standard C and C++, including the standard template
library. The runtime environment consists of the runtime library, which contains the
functions defined by the C and the C++ standards, and include files that define the
library interface (the system header files).
The runtime library is delivered both as prebuilt libraries and (depending on your
product package) as source files, and you can find them in the product subdirectories
arm\lib and arm\src\lib, respectively.
The runtime environment also consists of a part with specific support for the target
system, which includes:
● Support for hardware features:
● Direct access to low-level processor operations by means of intrinsic functions,
such as functions for interrupt mask handling
● Peripheral unit registers and interrupt definitions in include files
● The Vector Floating Point (VFP) coprocessor.
● Runtime environment support, that is, startup and exit code and low-level interface
to some library functions.
● A floating-point environment (fenv) that contains floating-point arithmetics support,
see Floating-point environment, page 268.
● Special compiler support, for instance functions for switch handling or integer
arithmetics.
===================
I go into the above folders and see that: all libraries in arm\lib folder are .a extension. and in arm\src\lib folder are .c or cpp extension.
Code:
The runtime environment consists of the runtime library, which contains the
functions defined by the C and the C++ standards, and include files that define the
library interface (the system header files).
So, runtime libraries can be either a static libraries or a shared libraries ?
Thanks