This page shows how to compile and install the Enlightenment Foundation Libraries (EFL) with C# bindings support, and explains how to build and run applications using them.
|Some C# classes are currently in BETA state
They should only be used for experimenting and NOT for any product development.
These classes are marked as BETA in the reference documentation.
You need a compatible version of Mono (5.0 or higher).
NOTE: Currently the C# bindings do NOT work with Mono 4.x.
The paths to the
mcs compiler and to the
mono application must be in the
PATH environment variable before compiling.
You need a compatible version of Mono (5.0 or higher). It suffices to install it with pacman in the MSYS2 environment:
pacman -S mingw-w64-x86_64-mono
Now you can use the MSYS2 console to compile, install and run EFL and your applications.
In order to compile and install EFL with C# binding support, on both Windows and Linux, just compile the EFL like the respective guides explain, and add the argument
--enable-csharp-bindings to the
./autogen.sh --enable-csharp-bindings #other arguments make -j4 sudo make install
NOTE: It is known that some portions of the code (typically the examples) can get a bit outdated from time to time, causing the building process to fail. The leading cause for this is a missing dependency. Usually, reading the error message and installing the missing package solves the problem. If you cannot solve the problem by yourself, try contacting the community.
NOTE If you are using Visual Studio to write EFL C# applications, you should copy to the build directory or have them in the
libefl_mono.dlland if you want to use Intellisense also
libefl_mono.xml. These libraries and XML file will be found at lib sub-directory of the prefix you install the library.
With EFL installed, you can compile EFL applications using
pkg-config to get the proper flags to use the C# bindings:
mcs your_app.cs -out:your_app.exe `pkg-config --libs efl-mono`
Otherwise, you have to manually point the compiler to the location of the EFL C# bindings library
libefl_mono.dll, like this:
mcs your_app.cs -out:your_app.exe -r:/home/my_user/efl/build/src/lib/efl_mono/libefl_mono.dll
To run your application you can either copy the EFL C# bindings library
libefl_mono.dll to your application folder or set the
MONO_PATH environment variable and then execute it using
mono. In both cases, you can use
pkg-config to get the right paths.
Example copying the library:
cp `pkg-config --variable=Libraries efl-mono` . mono button_example_00.exe
export MONO_PATH=`pkg-config --variable=assemblies_dir efl-mono` mono button_example_00.exe
Note that if you installed EFL in a path that is not directly accessible to
pkg-config or to your application you have to manually make it accessible somehow, for example, setting proper environment variables before compiling and running:
export PKG_CONFIG_PATH=/opt/my_install_prefix/lib/pkgconfig export LD_LIBRARY_PATH=/opt/my_install_prefix/lib
Try the Hello World tutorial now to verify that everything works as expected.