Installation guide

You will need a C compiler like gcc or clang, the NASM assembler, and a development toolchain of git, meson, and ninja. For some of the examples in the tutorial, you will need the free plotting program gnuplot, but this is not strictly necessary for using Cimba.

We also recommend using a modern integrated development environment (IDE) like CLion, which has the advantage of being available both on Linux and Windows, integrated with a gcc toolchain (called MinGW under Windows), and free for open source work.

Once the build chain is installed, you need to obtain Cimba itself. Cimba is distributed as free open source code through the Github repository at https://github.com/ambonvik/cimba. You download, build, and install Cimba with terminal commands.

Linux

On Linux, open a terminal window, change directory to where you want to have the source code tree, and enter these commands:

git clone https://github.com/ambonvik/cimba
cd cimba
meson setup build
meson compile -C build
sudo meson install -C build

You need elevated privileges (sudo) for the last step, since it installs the library and header files in system locations /usr/local/lib and /usr/local/include. These should already be in the respective paths for compilation and runtime linking.

If you encounter errors, such as the include file not found by the compiler or the Cimba library not found at runtime, please check that these paths are correctly configured on your system. The details of how to fix the issue may be distro-specific, so we will not try to give a recipe here.

Windows

As always, things are more complicated on Windows. So far, Cimba only supports a MinGW-W64 build chain with the gcc or clang compiler. MSVC is not yet supported.

To use the MinGW-W64 build chain, first make sure you have gcc installed and in your PATH by typing gcc --version in a command shell. If it does not respond, please install it before continuing, see https://www.mingw-w64.org/.

We have encapsulated most of the Windows setup complexity in a batch script called setup_MinGW.bat. This script will call on Microsoft Powershell internally to change system environment variables safely.

Start a command shell (cmd.exe) as administrator. Change directory to where you want to have the Cimba source hierarchy and issue the following commands:

git clone https://github.com/ambonvik/cimba
cd cimba
setup_MinGW.bat
meson compile -C build
meson install -C build

This will install Cimba in C:\Program Files\Cimba and add its bin directory to your PATH. Close the administrator command window when this is done, restart your computer, and open a new command window without administrator privileges. Type echo %PATH% to verify that the Cimba directory now is in the PATH.

If you have Windows Security ransomware protection enabled, you may have to allow access for various build chain applications to your build folders. You may also encounter issues with incompatible DLL’s already installed by other applications. Windows will load the one first encountered in your PATH environment variable, which may be older and incompatible with newly compiled source code. This may be solved by reordering the items in your PATH or updating the other applications to the latest version. If all else fails, copy libwinpthread-1.dll from the mingw64\bin directory to the same directory as your executable files.

Verifying your installation

After installation, we can write a C program like [tutorial/hello.c]:

#include <cimba.h>
#include <stdio.h>

int main(void) {
    printf("Hello world, I am Cimba %s.\n", cimba_version());
}

Compile it as any other C program, linking to the Cimba library:

gcc hello.c -lcimba -o hello

If all goes well, this program should produce output similar to:

Hello world, I am Cimba 3.0.0-beta.

You now have a working Cimba installation.

For a more comprehensive test, type:

meson test -C build

This will run the full suite of unit tests from the test directory. It will take a while. The output will look similar to this:

_images/test_suite.png