Skip to content

Compile as a Static Library

Apart from building Libtropic during your project's build process, you can build Libtropic separately as a static library (also known as a static archive on Linux) and link it later.

HAL and CAL Files Handling

The Libtropic static library does not contain HALs (libtropic/hal/) or CALs (libtropic/cal/). The consumer must provide these:

  1. If CMake is used, inspiration can be taken from the steps in the Add to an Existing Project section.
  2. In other cases, the HAL and CAL files will have to be added manually.

Compilation

To compile Libtropic as a static library on a Unix-like system, run:

$ mkdir build
$ cd build
$ cmake ..
$ make

To cross-compile Libtropic as a static library on a Unix-like system, you need a toolchain configuration file and a linker script. Both should be provided by the vendor of your platform. See an example of the toolchain configuration and linker script in the libtropic-stm32 repository.

After acquiring both the toolchain configuration and the linker script, do:

$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=<ABSOLUTE PATH>/toolchain.cmake -DLINKER_SCRIPT=<ABSOLUTE PATH>/linker_script.ld ..
$ make

Linking in a CMake Project

To link the compiled static library to your application, use target_link_libraries. For example:

add_executable(my_app source1.c source2.c etc.c)
target_link_libraries(my_app <absolute path to library file>)

Other Linking Options

There are other options for linking the library (e.g., imported targets). Refer to the CMake documentation for more information.

Linking in a Make Project

If you are using make with a Makefile, you can include the static library by adding the following lines to your Makefile:

LDFLAGS += -L<directory where the static library file is located>
LDLIBS  += -ltropic

Linking External Libraries

Refer to the GNU Make documentation for more information about linking external libraries.