TinyMAT
a library to write Matlab MAT-files
Loading...
Searching...
No Matches
Usage/Linking Instructions

This page explains how to link against TinyMAT.

Use TinyMAT with CMake

When using CMake to build your application, you can simply use target_link_libraries() to link against TinyMAT and use CMake's find_package() to enable that (see https://github.com/jkriege2/TinyMAT/tree/master/tests/extcmake_tinyMAT_test for an example):

cmake_minimum_required(VERSION 3.10)
project(extcmake_tinyMAT_test CXX)
# find TinyMAT library
find_package(TinyMAT)
# add an executable
add_executable(${PROJECT_NAME}
extcmake_tinyMAT_test.cpp
)
# link against TinyMAT
target_link_libraries(${PROJECT_NAME} TinyMAT::TinyMAT)
Note
Note that you may have to provide CMake with search pathes to find the library, e.g. set TinyMAT_DIR to <INSTALLDIR>/lib/cmake/TinyMAT so CMake finds the TinyMATConfig.cmake file there.

Use TinyMAT with CMake & FetchCotent-API

When using CMake to build your application, you can also use CMake's FetchContent-API to download and include TinyMAT (see https://github.com/jkriege2/TinyMAT/tree/master/tests/extcmake_fetchcontent_tinyMAT_test for an example and https://cmake.org/cmake/help/latest/module/FetchContent.html for documentation on FetchContent):

# set minimum required CMake-Version
cmake_minimum_required(VERSION 3.23)
# set Project name
project(extcmake_fetchcontent_tinyMAT_test LANGUAGES CXX)
# include TinyMAT via FetchContent-API:
# ... first load the FetchContent-API:
include(FetchContent) # once in the project to include the module
# ... now declare TinyMAT
FetchContent_Declare(TinyMAT
GIT_REPOSITORY https://github.com/jkriege2/TinyMAT.git
# GIT_TAG 3.1.0.0
)
# ... finally make TinyMAT available
FetchContent_MakeAvailable(TinyMAT)
add_executable(${PROJECT_NAME}
extcmake_fetchcontent_tinyMAT_test.cpp
)
target_link_libraries(${PROJECT_NAME} TinyMAT::TinyMAT)

Use TinyMAT without CMake

You can also link against TinyMAT without using CMake. For this you simply have to supply the library as a parameter to your compile/link run, e.g. for GCC:

$ g++ main.cpp -o out -I<INSTALLDIR>/include -L<INSTALLDIR>/lib -lTinyMAT_Release

The -I -option provides the search directory for include-files (i.e. headers) and the -L -option the search path for the link libraries. Here we link against the release version TinyMAT_Release, i.e. with config-decorated filename (see build options!). Check for the actual name of the libs on your system and plug in the appropriate name! If you build the library as a shared lib, you have to link e.g. against TinyMATShared_Release, as the build-scripts add the word hared to the library name for shared libs to distinguish them from the static libs.

Note that you might also have to provide additional libraries, depending on your system.