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:
- If CMake is used, inspiration can be taken from the steps in the Add to an Existing Project section.
- 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.