Main Page

From EcereWiki
Jump to: navigation, search

Ecere SDK

The Ecere SDK is a Software Development Kit including:

  • An elegant, easy to learn, C style object oriented programming language: eC
  • A light, fast and flexible cross-platform GUI toolkit.
  • An IDE including a code editor, visual object designer, project management and debugger.
  • A powerful 2D/3D graphics engine.
  • Libraries for networking, file access, databases, multithreading and much more.

The Ecere SDK is Free Open Source Software licensed under a revised BSD license.

Is it still under active development? Can I contribute?

Yes. Check out our:

Contributors are welcome! Please contact us through one of the above channels.

Yet a New Language... Why eC over ...?


  • eC adds object oriented features to C
  • Everything you can do in C, you can still do in eC.
  • You can link in C modules or libraries, include C header files.
  • No more need for header files or prototypes: modern import mechanism.


  • eC shares many basic OO concepts and syntax of C++, but offers simpler, more elegant code, geared specifically towards GUI development
  • Properties implement setters/getters
  • Events are implemented through eC's instance virtual methods
  • You use . (dot) instead of -> (pointer arrow) for accessing heap objects members.
  • You can link in C++ modules or libraries, at the C level (extern "C")


  • Because you want your applications to run natively, not in a virtual machine.


  • Because you want your applications to run on platforms other than Windows, and without requiring a huge framework to be installed.


  • Great language, but you might be missing C, prefer delimiting blocks by { } over indentation, or wish for a more compilation oriented language.
  • eC's reflection support and dynamism was inspired by Python

Functional Language X

  • Because you want to code something practical in a procedural and object-oriented manner.

What software is written in eC, with the Ecere SDK?

  • The entire Ecere SDK itself is written in eC:
    • The eC compiler is self hosting (but can be bootstrapped from a C compiler)
    • The IDE is written in eC using the Ecere GUI toolkit
    • The cross-platform GUI toolkit itself as well as the runtime library are all written in eC.
  • You will find a lot of samples within the samples folder of the source package.

We have released a few binary applications that are not yet open-sourced:

  • Acovel Media Player: A Media Library music player, based on the ffmpeg libraries (mp3, flac, ogg,...)
  • Ecere Communicator: An Instant Messaging client that supports the AIM/ICQ/Jabber/MSN networks

  • Ecere Corporation has been offering consulting services since 2005, building solutions for clients with the Ecere SDK.
  • We are also developing medical software products, such as Paper2PACS, a tool for radiology clinics to scan paper requisitions and send them to PACS systems through DICOM for digital archiving.

Here is a list of other software developped with eC and the Ecere SDK. Please let us know if you create some cool software and would like us to add it to this list.

  • najitool by Necdet Cokyazici and contributors

How do I install the SDK?

See main installation page at


You can grab the latest version from git with: git clone git://

On Windows, msys-git works great.

If you don't have git set up, you can download a tarball or zipfile.


On Windows, you need MinGW or MinGW-w64 (only w64 supports 64 bit) to build the Ecere SDK, and applications as well.

The Ecere SDK 0.44.11 installer will install the Ecere SDK and MinGW-w64 together for you. It will also configure your Compiler Global Settings as well for you, a step you will have to do on your own if you do not use the installer.

You can also opt for a portable version (outdated) of the SDK for which no installation is required. Learn more about it here. Each package comes pre-configured and ready to compile your projects out of the box. Just use your favorite decompression tool (7-zip, UnZip or Windows' Extraction Wizard for example) to extract the files. You can download the package that best fits your needs choosing from the following options:

You might also want to download or use your own version of MinGW-w64.

We recommend the MinGW-w64 builds with both 32 and 64 bit support


Once your compiling environment is set up, you should be able to build the SDK by simply running mingw32-make.

To install it, in Program Files\Ecere SDK, simply run mingw32-make install.

On Windows Vista/7 you must do this in an Elevated Command Prompt (Start, cmd, right click cmd.exe icon, Run as administrator), or make install will fail with an error.

Make sure to have previous instances of any Ecere application closed as well.


To install from source, you will need to ensure you have the proper dependencies installed.

Once the dependencies are set up, simply run make and sudo make install.

Look below for distribution specific information and available packages.

If you don't see text displayed, make sure you install the latest drivers for your video card, as older drivers had trouble with how Ecere displays text in the X graphics mode. An alternative would be to run it in OpenGL mode, but you might have to do that with textless menus: Alt V, Up, Up, Right, Down, Enter.

You could also be seeing poor quality or not be seeing any text if you are missing good true type fonts. We recommend you install Bitstream Vera and Liberation Fonts. You can find some other free fonts, including Unicode fonts, in this blog post.

Debian / Ubuntu

You can install the Ecere SDK on Ubuntu using the apt-get system.

The Ecere SDK is now part of Ubuntu under the ecere-sdk meta-package, since 12.10 "Quantal Quetzal".

To install the latest official Ubuntu package from a terminal on Quantal or later, you can simply type:

sudo apt-get install ecere-sdk

We also have daily builds on our Launchpad PPA with the latest code from our Git repository. To add our PPA to your system, bring up a terminal and enter:

sudo add-apt-repository ppa:ecere-team/ppa
sudo apt-get update

Then to install the latest version of the Ecere SDK:

sudo apt-get install ecere-sdk

Alternatively, you can add the following line in the Settings/Software Sources dialog: (For debian squeeze, use lucid as ubuntu version)


Please refer to the Adding this PPA to your system section of our Launchpad PPA page for detailed instructions.

To build Ecere from source on Debian/Ubuntu, you will need the proper dev packages:

sudo apt-get install build-essential
sudo apt-get install zlib1g-dev libpng12-dev libjpeg62-dev libgif-dev libncurses5-dev libfreetype6-dev libfontconfig1-dev libx11-dev libxrender-dev libgl1-mesa-dev libxext-dev upx-ucl libsqlite3-dev libffi-dev libasound2-dev libssl-dev

To build the 32 bit version of Ecere on a 64 bit system, you will need the 32 bit dependencies:

  • 32 bit Dependencies on a 64 bit system:
sudo apt-get install build-essential libc6-dev-i386 lib32z1-dev lib32ncurses5-dev zlib1g-dev libpng12-dev libgif-dev libjpeg62-dev libgif-dev libncurses5-dev
sudo apt-get install libfreetype6-dev libfontconfig1-dev libx11-dev libxrender-dev libgl1-mesa-dev libxext-dev upx-ucl libsqlite3-dev libffi-dev lib32ffi-dev lib32asound2-dev

If you are on Oneiric or Precise, it would seem that symlinks to the 32 bit libraries with their bare names are missing. You might require to do something like this:

sudo ln -s /usr/lib32/
sudo ln -s /lib32/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/
sudo ln -s mesa/ /usr/lib/i386-linux-gnu/
sudo ln -s /usr/lib/i386-linux-gnu/

Until we find the proper way to do this, you might need to do something like:

sudo ln -s /usr/include/i686-linux-gnu/ffi.h /usr/include/i386-linux-gnu/
sudo ln -s /usr/include/i686-linux-gnu/ffitarget.h /usr/include/i386-linux-gnu/

With multi arch system, from Precise and up, you specify the build dependencies differently. I believe these are what worked for me:

sudo apt-get install build-essential gcc libfreetype6-dev:i386 libx11-dev libxrender-dev libxext-dev upx-ucl libsqlite3-dev libffi-dev lib32ffi-dev libc6-i386 libfontconfig1-dev:i386
sudo apt-get install libc6-dev-i386 lib32z1-dev lib32tinfo-dev libgif-dev:i386 libncurses5-dev:i386 zlib1g-dev:i386 libjpeg62-dev:i386 libgif-dev:i386 libpng12-dev:i386 libgl1-mesa-dev:i386

Arch Linux

  • 32 bit Package
  • Dependencies: libpng freetype2 ncurses giflib libjpeg-turbo zlib fontconfig libxext libxrender mesa ttf-liberation ttf-bitstream-vera
  • 64 bit Package
  • 32 bit Dependencies on a 64 bit system: lib32-glibc lib32-gcc-libs lib32-libpng lib32-freetype2 lib32-ncurses lib32-giflib lib32-libjpeg-turbo lib32-zlib lib32-fontconfig lib32-libxext lib32-libxrender lib32-mesa ttf-liberation ttf-bitstream-vera gcc-libs-multilib gcc-multilib mesa

Red Hat / Fedora / CentOS

  • Forum Topic
  • Dependencies: groupinstall "Development Tools", zlibrary-devel libpng-devel giflib-devel libjpeg-devel ncurses-devel freetype-devel fontconfig-devel libX11-devel libXrender-devel libXext-devel mesa-libGLw-devel upx

Note: On older RedHat / CentOS with older releases of (e.g. 5.2), the input method support locks up the IDE. A workaround is to comment out the XOpenIM() function call line in ecere/src/gui/drivers/ (~line 1071).

Gentoo / Sabayon


Please install from source. You will need to install the latest Xcode. Then add your toolchain bin directory to the path and set SYSROOT to the SDK directory. e.g. with Xcode 4.5.2:

export PATH=$PATH:/Applications/
export SYSROOT=/Applications/

OS X support is currently limited to running through the X11 server.

The development of a Cocoa driver has begun and is the current focus. Contributions are welcome.

We're happy to announce that OS X support otherwise works properly now!


Return to

Return to

Outdated Pages

All the following pages need to be reviewed, updated and moved out of this section.

Learn more

Additional References

Other Pages