2008 (created)

Table of Contents


The Eina library is a library which implements an API for data types in an efficient way. It also provides some useful tools like opening shared libraries, error management, type conversion, time accounting and memory pools.

This library is cross-platform and can be compiled and used on Linux, BSD, and Windows.

The data types available are (see Data Types):

The tools available are (see Tools):

How to compile

Eina is a library to which your app can link. The procedure for this is very simple. You simply have to compile your application with the appropriate compiler flags as outputted by the pkg-config script. For example:

Compiling C or C++ files into object files:

gcc -c -o main.o main.c `pkg-config --cflags eina`

Linking object files into a binary executable:

gcc -o my_application main.o `pkg-config --libs eina`

See pkgconfig

Next Steps

After you've understood what Eina is and installed it, you can now learn more about the the programming interface.

Recommended reading:

Introductory Example

//Compile with:
//gcc -g eina_list_01.c -o eina_list_01 `pkg-config --cflags --libs eina`
#include <stdio.h>
#include <Eina.h>
main(int argc, char **argv)
Eina_List *list = NULL;
void *list_data;
list = eina_list_append(list, "tigh");
list = eina_list_append(list, "adar");
list = eina_list_append(list, "baltar");
list = eina_list_append(list, "roslin");
EINA_LIST_FOREACH(list, l, list_data)
printf("%s\n", (char*)list_data);
l = eina_list_nth_list(list, 1);
list = eina_list_append_relative_list(list, "cain", l);
list = eina_list_append_relative(list, "zarek", "cain");
list = eina_list_prepend(list, "adama");
list = eina_list_prepend_relative(list, "gaeta", "cain");
list = eina_list_prepend_relative_list(list, "lampkin", l);
EINA_LIST_FOREACH(list, l, list_data)
printf("%s\n", (char*)list_data);
return 0;

More examples can be found at Eina Examples.