elf
ELF is a cross-compile, cross-platform C++ library that represents ELF file format The library includes an easy abstraction layer for OS-dependent code.
Requirements
Windows
Need Visual Studio Express 2010 or higher, or Visual Studio 2010 or higher.
Ubuntu (Debian)
sudo apt-get install automake autoconf libtool build-essential git-core
CentOS/Fedora/Redhat
- Building tools
sudo yum install autoconf automake gcc-c++
sudo dnf install autoconf automake gcc-c++
Some distributions of CentOS have a problem with libstd++ (need to check). For some reason the symbol __cxa_get_exception_ptr is not defined.
ArchLinux
- Building tools
sudo pacman -S base-devel automake autoconf git
sudo pacman -S gcc-multilib libtool-multilib binutils-multilib
Cygwin
Install cygwin with the following packages:
- gcc
- g++
- automake
- autoconf
- libtool
Setting Up Environment
Git
git clone https://github.com/eladraz/xStl
git clone https://github.com/eladraz/elf
Compilation Shortcut (build.sh script)
Set up the following environment variables:
export XSTL_PATH=`pwd`/xStl
Windows
In order to pass variable arguments to Visual Studio, you need to declare the following system arguments:
- XSTL_PATH (for example:
C:\WORK\github\xStl
) - ELFLIB_PATH (for example:
C:\WORK\github\elf
)
To add system variables you should:
- Right-click My Computer, and then click Properties.
- Click the Advanced tab.
- Click Environment variables.
- Click New to add a new variable name (e.g.
XSTL_PATH
) and its location (e.g.C:\WORK\github\xStl
).
How to Build
CMake
CMake is cross-compile system for many platform and many system. You can read about it more here
Here is a quick example on how to run xStl with ninja build:
mkdir build
cd build
cmake -G Ninja ..
ninja -j
Linux
Build all projects (the default configuration of the compilation script is the debug/unicode version):
cd elf
./build.sh
cd ../
In order to compile elf you can simply run build.sh
:
#/bin/sh
PWD=`pwd`
./autogen.sh && ./configure [--prefix=${PWD}/out] [--enable-debug] [--enable-unicode] [--enable-tests] && make -j4 && make install
Compile
- Run
./autogen.sh
in order to generateMakefile
configure script. - Run
./configure
to generateMakefile
(see Configure Argument section, below). - Run
make
andmake install
.
Configure Argument
- --enable-debug Compile with debugging flags
- --enable-unicode Compile with UNICODE support
- --enable-tests Compile xStl_tests
Cross-Compile
In order to cross-compile (ARM, for example):
./autogen.sh
./configure --build= --host=arm-none-linux-gnueabi
Please note that it is important to have a PATH to the cross-compiler bin folder (e.g. arm-none-linux-gnueabi-g++
).
Windows
In order to build the elf library, open elf.sln
solution project with Visual Studio.
In Visual Studio's configuration manager, choose the desired build configuration (Win32/x64/Debug/Release) and build elf
.
License
Please see LICENSE file