PE lib is a cross-compile, cross-platform C++ library that implements PE file format wrapper. The library includes an easy abstraction layer for OS-dependent code.
Need Visual Studio Express 2010 or higher, or Visual Studio 2010 or higher.
sudo apt-get install automake autoconf libtool build-essential git-core
- 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.
- Building tools
sudo pacman -S base-devel automake autoconf git
sudo pacman -S gcc-multilib libtool-multilib binutils-multilib
Install cygwin with the following packages:
- gcc
- g++
- automake
- autoconf
- libtool
git clone https://github.com/eladraz/xStl
git clone https://github.com/eladraz/pe
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
) - PELIB_PATH (for example:
C:\WORK\github\pe
)
To add system variables you should:
- Right-click My Computer, and then click Properties.
- Click the Advanced tab.
- Click Environment variables.
- Click one the following options, for either a user or a system variable:
- Click New to add a new variable name (e.g.
PELIB_PATH
) and value (e.g.C:\WORK\github\pe
).- Click an existing variable, and then click Edit to change its name or value.
- Click an existing variable, and then click Delete to remove it.
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
In order to build the pe library, open peLib.sln
solution project with Visual Studio.
In Visual Studio's configuration manager, choose the desired build configuration (Win32/x64/Debug/Release) and build pe
.
Set up the following environment variables:
export XSTL_PATH=`pwd`/xStl
Build all projects (the default configuration of the compilation script is the debug/unicode version):
cd xStl
./build.sh
cd ../
In order to compile dismount 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
- Run
./autogen.sh
in order to generateMakefile
configure script. - Run
./configure
to generateMakefile
(see Configure Argument section, below). - Run
make
andmake install
.
- --enable-debug Compile with debugging flags
- --enable-unicode Compile with UNICODE support
- --enable-tests Compile test tools (dumpPE)
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++
).
Please see LICENSE file